相关疑难解决方法(0)

为什么我的编译保护不能防止多个定义包含?

我有一个头文件xh,它包含多个*.c源文件.此头文件定义了一些结构变量.

我在头文件的开头添加了多个包含防护措施:

#ifndef X_H
#define X_H
...
..
//header file declarations and definitons.


#endif//X_H
Run Code Online (Sandbox Code Playgroud)

在构建时,我得到与多个定义相关的链接器错误.我理解这个问题.

  1. 不会像我一样在头文件的顶部有多重包含防护,防止头文件xh的多个包含,从而避免xh中存在的变量的多个定义?

  2. #pragma曾经不适用于这个特定的编译器,那么解决方案是什么?有人把这个答案发给了一个类似的问题.它似乎对我不起作用.这个解决方案如何运作?

c linker multiple-inclusions

45
推荐指数
5
解决办法
4万
查看次数

标签 统计

c ×1

linker ×1

multiple-inclusions ×1