我得到IDENTIFER未找到错误的 “startProcess”:C++标识Not Found错误
int main(int argc, char* argv[])
{
bool result=startProcess(argc, argv);
return 0;
}
bool startProcess(int argc, char* argv[])
{
}
但是,为什么?
我得到IDENTIFER未找到错误的 “startProcess”:C++标识Not Found错误
int main(int argc, char* argv[])
{
bool result=startProcess(argc, argv);
return 0;
}
bool startProcess(int argc, char* argv[])
{
}
但是,为什么?
如果没有定义,函数在使用前至少需要声明。尝试把它放在文件的顶部。
bool startProcess(int argc, char* argv[]);
上面是声明,你告诉,在某些时候,你要的功能,这是该提供定义编译:
bool startProcess(int argc, char* argv[])
{
code here...
}
声明和定义之间的差异对于能够将您的代码分离为单独的文件很重要。如果您已将的定义的startProcess
置于不同的文件中,编译器在编译包含main
的文件时绝不会真正看到它。然而,在声明,你承诺它存在的地方。
您还没有宣布main()
之前的功能,所以编译器不知道的startProcess
存在于调用点:
bool startProcess(int argc, char* argv[]); // <== Informs the compiler about
// the existence of startProcess
// (and about its signature)
int main(int argc, char* argv[])
{
bool result = startProcess(argc, argv); // OK because of the declaration
// above: the compiler knows that
// somewhere (possibly in another
// translation unit) the definition
// of startProcess is provided
return 0;
}
bool startProcess(int argc, char* argv[])
{
// ...
}
或者,你可以直接把定义main()
前:
bool startProcess(int argc, char* argv[])
{
// ...
}
int main(int argc, char* argv[])
{
bool result = startProcess(argc, argv);
return 0;
}
我完全忘记了这一点。在C#中编码时间过长。谢谢!!!!! – Ron 2013-05-08 17:17:41
@Ron:很高兴帮助;) – 2013-05-08 17:18:16
在您的主要功能之前制作原型。
bool startProcess(int argc, char* argv[]);
,你应该把startProcess
声明之前主,如果你希望把它定义main
后。
bool startProcess(int argc, char* argv[]); //declare here
int main(int argc, char* argv[])
{
bool result=startProcess(argc, argv);
return 0;
}
bool startProcess(int argc, char* argv[])
{
}
,或者你可以main
之前直接放startProcess
定义。
在使用它之前声明它。 OMG !!! – 2013-05-08 17:07:34