我想在 C 中创建一个单例结构,并提出了使用未命名结构来定义全局变量的想法,我们无法创建它的另一个实例,因为它是未命名的结构(因此我们有一个单例!)
#ifndef __for_including_this_file_once__
#define __for_including_this_file_once__
struct { variables } singleton_strcut;
#endif // __for_including_this_file_once__
这样我们就可以在包含此
.h
文件的任何位置仅通过实例名称来访问该实例。
如果您有多个 .c 文件,这将不起作用。如果多个源文件包含此标头,那么当您到达链接器阶段时,您将最终遇到多重定义错误。
您需要在头文件中放置一个声明,并在一个源文件中放置一个定义,为此,您需要为该结构指定一个名称。