我有一个关于C风格结构的快速问题.我正在挖掘一些示例代码,并发现以下列方式声明的结构:
typedef struct _STRUCTNAME
{
// struct contents
} STRUCTNAME;
Run Code Online (Sandbox Code Playgroud)
请注意STRUCTNAME第二次出现时缺少下划线.我的理解是,这将声明一个名为STRUCTNAME的_STRUCTNAME,并且不能再实例化此结构的对象.
但是,情况似乎并非如此.除了在一个地方之外,这种类型的结构从未在代码中实际实例化:在随机位置使用的此类对象的全局数组中:
const struct STRUCTNAME ARRAYNAME[] =
{
// various STRUCTNAMEs declared here
};
Run Code Online (Sandbox Code Playgroud)
注意再次缺少下划线(我认为是实例化对象的名称?)
我的理解完全没了?
有人能解释一下吗