【发布时间】:2011-09-25 13:01:49
【问题描述】:
假设我有一个很小的头文件,像这样:
#ifndef A_H_
#define A_H_
void print();
int getInt()
{ //ERROR HERE
return 5;
}
#endif /* A_H_ */
还有一个像这样实现打印的源文件:
#include "a.h"
void print()
{
printf("%d\n",getInt()); //WARNING HERE
}
还有我的 main() 函数代码:
#include <stdio.h>
#include <stdlib.h>
#include "a.h"
int main(void)
{
print();
return EXIT_SUCCESS;
}
注意getInt 在头文件中定义并在源文件中调用。
当我编译时,我在头文件中得到multiple definition ofgetInt'`,但我只有
定义一次!源文件 (.c) 只调用它。我的问题是什么?
谢谢
【问题讨论】:
-
如给定的,这会编译得很好。您真正的问题可能包括两次标头,或将其包含在多个文件中。
-
在问题中发布代码的第一条规则:确保它确实重现了问题。你会自己找到解决方案的。
标签: c header multiple-definition-error