C++ Visual studio在某些情况下看不到函数声明

C++ Visual studio在某些情况下看不到函数声明,c++,visual-studio-2010,C++,Visual Studio 2010,例如: void main(){ foo1(); } fooTarget(); foo1(foo2();); foo2(foo3();); foo3(foo4();); foo4(foo5();); foo5( foo6(); fooTarget(); //Identifier not found ); foo6( fooTarget(); //It Works! ); 这是什么? 如果我将代码从fooTarget()粘贴到foo5(),它也可以工作 与实际代码相比,减少了测试用例: #

例如:

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);
}
#包括
int main(){
字符单词[]=“嘿”;
int-wordSize=getWordLenght(word);//错误:未声明getWordLenght
}
int GetWordLength(字符*单词){
返回strlen(word);
}
如果删除换行符,将解析为:

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

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


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

在您在注释中发布的代码中,您使用的函数尚未声明。后来声明了,但是C++没有查看后面的声明来解析函数。
此外,“th”有向图拼写为“th”,而不是“ht”

我很惊讶
foo5(foo6();fooTarget();)完全可以编译。我根本不知道这意味着什么。当我试图编译上面的代码时,我得到了很多错误。在
main
中重新排列它,使声明在使用之前消除了一些,但仍然留下了很多关于
语法错误的信息,遗漏了“;”
。我也很惊讶,我可以在遇到这种麻烦的地方提供代码。我认为一些真正的代码,显示(仅)与您有关的错误,会非常有帮助。您在上面发布的内容有太多错误,很难猜测您关心的是哪一个。也没有原型,这是您在定义/声明它之前尝试使用的唯一结构
getWordLength
(顺便说一句,您拼错了)。剪切并粘贴它,使其位于
process()
之前,代码可以很好地编译。若要将实现放在调用位置之后,可以使用函数原型作为声明。
foo5( foo6(); fooTarget(); );