我有一個結構中包含多個結構的情況。小例子:
typedef struct data {
int x;
} data_t;
typedef struct info {
data_t data_element[10];
int y;
} info_t
有什么方法可以列印屬于 的所有結構大小info_t嗎?
uj5u.com熱心網友回復:
并非不知道這些型別是什么。C 沒有反射(例如,java 或 c# 的方式)。
如果您確實知道型別,那么只需使用 sizeof 和列印功能即可。
uj5u.com熱心網友回復:
單獨使用 C 語言是不可能的,因為它不提供這種內省。您所能做的就是遍歷結構成員并列印它們的大小。
也就是說,十年前,我不得不為數百個成員的大型復雜結構執行此操作。我終于通過決議目標檔案的除錯部分獲得了所需的資訊。我不再有詳細資訊,但是您需要使用-g標志進行編譯,然后使用適當的工具轉儲除錯輸出。試著看readelf和objdump公用事業和手冊頁。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/393275.html
標籤:C
