簡體   English   中英

這是 typedef 結構的有效形式嗎?如果是,它是什么意思?

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

現在使用一段代碼,其中包含以下形式的聲明:

typedef PACKED(struct) 
{

// some stuff in here

} struct_name; 

現在...PACKED 是我們的一個宏。 這個語法到底是什么意思? 我不明白括號的用法。 這不是編譯,所以我猜這可能是不正確的。 這是否接近其他一些有效的語法,還是只是胡說八道?

如果它幾乎是有效的..這段代碼實際上應該如何編寫,它應該是什么意思?

我在網上看到並能找到的 typedef struct 的唯一形式是:

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

已解決:我需要意識到的是,struct 是宏 function 中的參數。 謝謝!

通常所有大寫的東西都是宏。 在這種情況下,它可能應該使用創建打包結構的語法來裝飾結構聲明,這將根據所使用的編譯器而有所不同。

您可能完全錯過了 PACKED 宏的定義。

大多數編譯器都提供了指定結構應如何存儲在 memory 中的功能。 它很少使用,但packed通常意味着*have this structure occupy the least space possible, even at a loss of speed in accessing its members*

鑒於您的代碼無法編譯,我會說PACKED很可能是現在丟失的宏,或者您正在使用的編譯器中不可用的特定於編譯器的關鍵字。

使用該語法, PACKED 必須是宏。

可能指的是某種結構 alignment

 __attribute__(packed, aligned(1)) 

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

#pragma pack(pop)

雖然我們很難告訴你,而不是相反:))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM