如何得到程式中6位元組的結構體

2021-08-18 18:24:14 字數 707 閱讀 8899

在工作中我們可能會遇到這樣的情況,我們知道有個大小為100位元組的變數存在記憶體未釋放的情況,但是很難從數量龐大的**中尋找該結構體。那我們有什麼方法可以快速找到麼?

我們在gcc編譯時通常會新增一些編譯選項用來保證程式的質量,今天我們就用-wlarger-than=x的選項來查詢我們需要的結構體。

#include 

typedef

struct

a;typedef

struct

b;typedef

struct

c;int main(int argc,char *argv)

[root@smart 29_switch]# gcc -o temp temp.c -wlarger-than=5

temp.c: in function 『main』:

temp.c:25: warning: size of 『a』 is 12 bytes

temp.c:26: warning: size of 『b』 is 8 bytes

temp.c:27: warning: size of 『c』 is 6 bytes

[root@smart 29_switch]#

從上述編譯過程我們可以看出,變數c的大小為6位元組,從而我們可以得到相應的結構體是哪乙個。

juyin@2018/3/14

python結構體位元組對齊 八字節對齊

位元組對齊意義 在進行c c 開發時,特別是要求跨平台或者網路通訊的時候,都會要求進行位元組對齊,那為什麼需要對齊,如果不對齊會有什麼問題呢。1 儲存方式 現代計算機處理器對儲存的讀取都是按照特定大小位元組去讀寫 稱其為乙個儲存單元 比如乙個變數char,它的長度為1,但是在儲存器中它占用的空間是乙...

結構體4位元組對齊規則的詳解

一 四位元組對齊的規則 c 中結構體變數的儲存為什麼有個4位元組對齊的規則,這裡是假設32位機器上,cpu在讀取記憶體資料的時候4位元組對齊會取得更快的速度 這是因為 1位元組8位,4位元組正好32位,而32位機器的暫存器,位址什麼的都是32位的,正好一次處理就完成。例如,下面的結構各成員空間分配情...

結構體為什麼要4位元組對齊

sizeof 一 求結構體大小 這篇文章講了sizeof求結構體大小的計算方法,並給出可以套用的準則 1 結構體變數中成員的偏移量必須是成員大小的整數倍 0被認為是任何數的整數倍 2 結構體大小必須是所有成員大小的整數倍,也即所有成員大小的公倍數。二 對於巢狀的結構體,需要將其展開。對結構體求siz...