Visual Studio не видит объявления функции в некоторых случаях

Вопрос: Например: void main(){ foo1(); } fooTarget(); foo1(foo2();); foo2(foo3();); foo3(foo4();); foo4(foo5();); foo5( foo6(); fooTarget(); //Identifier not found ); foo6( fooTarget(); //It Works! ); что это? если я вставляю код из fooTarget() в foo5(), он тоже работает Уменьшенный тестовый код из фактического кода: #include int main() { char word[] = "hey"; int wordSize = getWordLenght(word);

Вопрос:

Например:

void main(){ foo1(); } fooTarget(); foo1(foo2();); foo2(foo3();); foo3(foo4();); foo4(foo5();); foo5( foo6(); fooTarget(); //Identifier not found ); foo6( fooTarget(); //It Works! );

что это? если я вставляю код из fooTarget() в foo5(), он тоже работает

Уменьшенный тестовый код из фактического кода:

#include <cstring> int main() { char word[] = «hey»; int wordSize = getWordLenght(word); // error: getWordLenght not declared } int getWordLenght(char *word){ return strlen(word); } Лучший ответ:

В коде, который вы разместили в комментариях, вы используете функцию, которая еще не была объявлена. Это было объявлено позже, но C++ не рассматривает более поздние объявления для разрешения функций.

Кроме того, “th” орграф пишется “th”, а не “ht”

Ответ №1foo5( foo6(); fooTarget(); //Identifier not found );

Если вы удалите новые строки, это будет проанализировано как:

foo5( foo6(); fooTarget(); );

Который, конечно, не правильный C++ код.

У вас есть много других ошибок в вашем размещенном коде. Например, вы не указываете типы возвращаемых данных для любого из ваших прототипов функций – при условии, что они предназначены для прототипов.

Оцените статью
Добавить комментарий