1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
warning: incompatible implicit declaration of built-in function 'strchr' то же самое пишет для strlen. Что бы это значило?
Добавлено через 6 мин. Как только написал на форум, до меня дошло, что я не подключил #include <strings.h> Теперь очень интересует, почему тогда эти функции работали?
Блин. Вопрос снят... Вас устраивает "как есть", значит, пусть будет "как есть", без заголовочных файлов программа работает? Прекрасно. Не заморачивайтесь. Не стОит. Когда программа начнет глючить - и вопрос поймете, и ответ найдете.
Который раз понимаю, что вопросы "а почему так происходит" на форумах лучше не поднимать - это просто напросто никого не интересует, и разбираться никто не хочет. Работает и ладно, а вопросов наводящих никто не понимает, оказывается.
Ответ на вопрос - кому интересно(Показать/Скрыть)
Открываем описание языка С. Не MSDN. Видим, что чистый С позволяет вызывать неописанную функцию, при этом контроль типов отключается. Я не зря спрашивал, почему можно использовать main без типа результата. В чистом С результат, возвращаемый функцией, если в прототипе не указан его тип - это int... А если размер типа, возвращаемого функцией не будет совпадать с размером переменной, куда он записывается, то будет что? Правильно, проблема.
Столкнетесь - сразу поймете, что имелось в виду...
Блин. Вопрос снят... Вас устраивает "как есть", значит, пусть будет "как есть", без заголовочных файлов программа работает? Прекрасно. Не заморачивайтесь. Не стОит. Когда программа начнет глючить - и вопрос поймете, и ответ найдете.
Который раз понимаю, что вопросы "а почему так происходит" на форумах лучше не поднимать - это просто напросто никого не интересует, и разбираться никто не хочет. Работает и ладно, а вопросов наводящих никто не понимает, оказывается.
volvo, именно потому, что меня не устраивает - поэтому и спрашиваю. Как минимум меня и Krjugerа это интересует. К сожалению, я действительно не понял вопрос.
Цитата
почему sizeof(const char*) вроде бы понятно, да? Все-таки, первый параметр strchr (да и strlen - тоже) как раз такого типа. Попробуй подумать и объяснить, почему sizeof(int)...
Что означает "почему sizeof(const char*)" ?
Цитата
почему оно (одно из выражений strlen или strchr?) может перестать работать, как только размер const char * будет отличаться от размера int. И уточнил, что основная суть вопроса - почему здесь(т.е. почему функция strlen возвращает int?) появился именно int, а не какой-то другой тип