这是一种有效的类型定义结构吗?如果是,它意味着什么?

Is this a valid form of typedef struct and if so, what does it mean?

本文关键字:结构 如果 什么 意味着 定义 类型 一种 有效      更新时间:2023-10-16

现在正在处理一段代码,它的特点是声明的形式:

typedef PACKED(struct) 
{
// some stuff in here
} struct_name; 

现在…PACKED是我们的一个宏。这个语法到底是什么意思?我不明白括号的用法。这不是编译,所以我猜这可能是不正确的。这是接近于其他一些有效的语法,还是只是无稽之谈?

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

我所见过并能在网上找到的唯一形式的类型定义结构是:

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

已解决:我只需要认识到struct是宏函数的一个参数。谢谢!

通常所有大写的东西都是宏。在这种情况下,它可能应该用创建打包结构的语法来修饰结构声明,这将根据所使用的编译器而变化。

很可能你完全错过了pack宏的定义。

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

考虑到你的代码不编译,我想说PACKED很可能是一个宏现在丢失了,或者一个编译器特定的关键字不可用在你正在使用的。

按照这种语法,PACKED必须是一个宏。

可能指的是某种结构体对齐方式

 __attribute__(packed, aligned(1)) 
#pragma pack(push,1)
//...
#pragma pack(pop)

虽然我们很难告诉你,相反的:))

相关文章: