-2

例如:

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);
}
4

2 回答 2

2

在您在评论中发布的代码中,您正在使用尚未声明的函数。它是稍后声明的,但 C++ 不会查看以后的声明来解析函数。

此外,“th”有向字母拼写为“th”,而不是“ht”

于 2012-06-18T16:34:26.537 回答
0
foo5(
foo6();
fooTarget(); //Identifier not found
);

如果您删除换行符,这将被解析为:

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

当然,这不是正确的 C++ 代码。

您发布的代码中还有很多其他错误。例如,您没有为任何函数原型指定返回类型——假设它们是原型。

于 2012-06-18T16:33:43.603 回答