这是typedef结构的有效形式,如果是这样,它意味着什么?

时间:2011-07-21 22:07:44

标签: c++ struct typedef

现在使用一段代码,其中包含以下形式的声明:

typedef PACKED(struct) 
{

// some stuff in here

} struct_name; 

现在...... PACKED是我们的一个宏。这句话的意思是什么? 我不明白使用括号。这不是编译,所以我猜这可能是不正确的。这接近其他一些有效的语法,还是只是废话?

如果它几乎有效.. 这段代码实际上应该如何编写,它应该是什么意思?

我见过并且可以在网上找到的唯一形式的typedef结构是:

typedef struct
{
 // some stuff in here
} struct_name;

解决:我需要意识到的是结构是宏函数中的参数。谢谢!

3 个答案:

答案 0 :(得分:2)

通常所有大写的内容都是宏。在这种情况下,它可能应该使用创建压缩结构的语法来装饰struct声明,这将根据使用的编译器而有所不同。

您可能完全错过了PACKED宏的定义。

答案 1 :(得分:1)

大多数编译器都提供了指定结构应该如何存储在内存中的功能。它很少使用,但packed通常意味着*have this structure occupy the least space possible, even at a loss of speed in accessing its members*

鉴于你的代码没有编译,我会说PACKED很可能是一个宏现在丢失了,或者你正在使用的那个中没有特定于编译器的关键字。

答案 2 :(得分:1)

使用该语法,PACKED必须是一个宏。

可能指某种结构对齐方式

 __attribute__(packed, aligned(1)) 

#pragma pack(push,1)
//...

#pragma pack(pop)

虽然我们很难告诉你,而不是相反:))