是否可以声明仅在使用该结构的 .c 文件中可见的结构类型?我知道通过将静态放在外部数据对象前面,您可以将变量的链接更改为内部。但是是否可以将static放在新结构类型的声明之前,如下所示?
static struct log{
...;
...;
};
typedef struct log log;
如果无法将结构类型(例如上面的log)设置为“私有”,是否意味着即使其他源文件不知道该结构的名称(在我的示例中为log )的存在,如果他们命名一些变量日志(假设我将链接所有目标文件),仍然可能发生意外的名称冲突?
编辑:我不熟悉编译器/链接器的工作方式。如果有一个全局变量名log,并且包含全局变量的文件链接到定义结构log的唯一源文件,那么链接时不会引起任何混淆,一个日志是变量名,而另一个日志是类型名称吗?