Вопрос:
Например:
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++ код.
У вас есть много других ошибок в вашем размещенном коде. Например, вы не указываете типы возвращаемых данных для любого из ваших прототипов функций – при условии, что они предназначены для прототипов.