我有一个头文件x.h,被多个*.c源文件包含。这个头文件定义了一些结构变量。
我在头文件的开头放置了多重包含防护宏:
#ifndef X_H
#define X_H
...
..
//header file declarations and definitons.
#endif//X_H
在构建时,我遇到了与多个定义相关的链接器错误。我理解这个问题。
我在头文件顶部放置了一个多重包含预防守卫,如我所拥有的,这样做会防止头文件x.h的多次包含,从而避免在x.h中存在的变量的多重定义吗?
#pragma once
在这个特定的编译器上不起作用,那么该怎么办?有人针对类似问题发布了这个答案。它对我似乎不起作用。这个解决方案是如何工作的?