реклама на сайте
подробности

 
 
> Объясните почему именно const char в string.h, Зачем обязательно const
kolobochishe
сообщение Apr 11 2012, 04:51
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Попробовал поискать ответ на вопрос в инете, но чего-то не нашел.

Работаю со строками в своей программе: названия файлов, расширения и прочее. Все массивы-строки объявляю как unsigned char (ну или просто char. Наверно, не принципиально)
В IAR'е есть стандартная библиотека <string.h>. Почему все функции используют именно const char * а не просто char * в качестве параметров?

Например:

strcmp

int strcmp(const char *s1, const char *s2);


Собственно, все работает и так нормально, но надоели warning'и компилятора. Не зря же он предупреждает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
demiurg_spb
сообщение Apr 11 2012, 05:16
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



чтобы можно было передать в функцию как константную строку так и нет.
Пофантазируйте: ведь с не константной переменной ничего плохого не может случиться передав её в функцию по указателю на константу,
а с константой фигушки - будь любезен и функцию напиши чтобы она получала обязательно указатели на константу ибо нет гарантии что код внутри функции не захочет измениь свои аргументы (по указателю на не константу). Ну и компилятор обязательно выдаст вам ошибку.

Цитата(kolobochishe @ Apr 11 2012, 08:51) *
Собственно, все работает и так нормально, но надоели warning'и компилятора. Не зря же он предупреждает
Покажите пример и пример варнинга.

Для AVR тулчейн?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 23:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016