我遇到Visual Studio 2012的问题
我想在其他文件中包含一个头文件,然后在.c文件中包含第二个头文件。 我想在第一个头文件中定义一个常量,并在c文件中使用它的值。 我认为这是可能的,因为它是在标准库中完成的
当我这样做时,编译器发送错误消息:
1> C:\ Users \ sotfware \ Desktop \ ConsoleApplication4 \ Debug \ ConsoleApplication4.exe:致命错误LNK1169:找到一个或多个多重定义的符号
答案 0 :(得分:0)
将函数的定义(主体)放在常规C文件中,只放入头文件中的声明。假设我有这些功能:
void PrintHelloWorld(void)
{
printf("Hello World\n");
}
void PrintHelloWorld2(void)
{
printf("Hello World");
}
然后我的C文件将保留此^^但是Header文件应该是:
void PrintHelloWorld();
void PrintHelloWorld2();
我记得,我认为你应该在头文件中声明常量。
答案 1 :(得分:0)
我认为没关系。也许您可以显示有关您问题的更多详细信息。
第一个标题(a.h):
#ifndef A_H
#define A_H
const int i = 5;
#endif
第二个标题(b.h):
#ifndef B_H
#define B_H
#include "a.h"
#endif
源文件:
#include <stdio.h>
#include "b.h"
main() {
printf("%d\n", i);
exit(0);
}