《C關鍵字分析》利用聯合體判斷處理器儲存模式

2021-06-18 16:27:17 字數 413 閱讀 9752

一、關於聯合體的說明

聯合體的出現是為了節省記憶體空間;聯合體分配的記憶體大小是其成員變數中最大變數的大小,而不像結構體是各個成員變數記憶體的總和。

利用聯合體成員變數共用記憶體的特點,我們可以判斷處理器的大小端模式。

二、demo

1.原始碼

test.c

#include int checksystem()

c; c.i = 1;

return (c.ch ==1);

}int main()

2.編譯

gcc test.c -o test

3.在我的主機上執行

./test

小端模式
結論:intel cpu是小端模式。

C語言關鍵字之聯合體

聯合體 union 定義 比如 typedef unionun 實驗 includeint main union test union test printf a 0x x,b 0x x n union test.a,union test.b printf sizeof union test d n...

利用聯合體完成一些資料處理的問題

聯合體的特性之一就是成員共用記憶體,以最大成員的大小開闢空間。在一些情況下,這個特性也是在其他程式設計技巧中出現的,比如資料型別的強制轉換,int t char c char t 不管資料型別怎麼轉換,都表示同一段 在同一段記憶體,這個和聯合體是相似的,比如在乙個例子中,要解決浮點數的正負判斷,一般...

《C關鍵字分析》之extern用法

一 假設為三方提供庫原始碼和標頭檔案 1.共享庫部分 sanf.c include int a void hello 編譯 gcc shared fpic o libsanf.so sanf.c 生成 libsanf.so 2.標頭檔案 sanf.h extern int a extern c 以上...