【发布时间】:2011-07-25 05:21:20
【问题描述】:
我有一个关于 C 风格结构的快速问题。我正在挖掘一些示例代码,发现一个以以下方式声明的结构:
typedef struct _STRUCTNAME
{
// struct contents
} STRUCTNAME;
请注意,STRUCTNAME 第二次出现时缺少下划线。我的理解是,这将声明一个名为 STRUCTNAME 的单个 _STRUCTNAME,并且不能实例化该结构的更多对象。
但是,情况似乎并非如此。这种类型的结构实际上从未在代码中实例化,除非在一个地方:在随机位置使用的此类对象的全局数组中:
const struct STRUCTNAME ARRAYNAME[] =
{
// various STRUCTNAMEs declared here
};
再次注意缺少下划线(我认为这是实例化对象的名称?)
我的理解完全不成立吗?
谁能解释一下?
【问题讨论】: