我是 C89 的新手,看来您必须在调用它之前声明一个函数。所以这是不可接受的:
void foo() {
bar();
}
void bar() {
// do stuff
}
因为是在文件bar()
中定义的。foo()
有没有办法解决这个问题?我需要一个头文件吗?
添加原型:
void bar(); // prototype for function bar() which is implemented later
void foo() {
bar();
}
void bar() {
// do stuff
}
对于有多个源代码文件的项目,原型通常会放在头文件中,并包含在多个源文件中;只需在单个源文件中指定实现。编译器只需要原型能够执行正确的类型检查等。
此外,如果不需要从文件外部调用函数(即,如果函数可以设为“静态”),那么您通常可以简单地对文件中的函数进行排序,以便编译器看到函数的定义在使用该功能之前。