例如:
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);
}
答案 0 :(得分:2)
在您在评论中发布的代码中,您正在使用尚未声明的函数。它稍后声明,但C ++不会考虑以后的声明来解析函数。
此外,'th'有向图拼写'th',而不是'ht'
答案 1 :(得分:0)
foo5(
foo6();
fooTarget(); //Identifier not found
);
如果删除换行符,则会将其解析为:
foo5( foo6(); fooTarget(); );
当然,这不是正确的C ++代码。
您发布的代码中还有很多其他错误。例如,您没有为任何函数原型指定返回类型 - 假设它们是原型。