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