聯合體(共同體)

2021-08-21 03:06:53 字數 701 閱讀 9037

#include #include union s

; // 整個聯合體占用 4 位元組

int main()

; // 初始化首個成員, s.n 現在是活躍成員

// 於此點,從 s.s 或 s.c 讀取是未定義行為

std::cout << std::hex << "s.n = " << s.n << '\n';

std::cout << std::hex << "s.s = " << s.s << '\n';

std::cout << std::hex << "s.c = " << s.c << '\n';

s.s[0] = 0x0011; // s.s 現在是活躍成員

// 在此點,從 n 或 c 讀取是 ub 但大多數編譯器都對其定義

std::cout << "s.c is now " << +s.c << '\n' // 11 或 00 ,依賴平台

<< "s.n is now " << s.n << '\n'; // 12340011 或 00115678

getchar();

return 0;

}

共同操作一塊記憶體,每個成員可以輪流活躍,比如,union表示工作型別時,用char表示教師,用int表示學生,需要不同結果表示同一型別時,可以使用union。

結構體,共同體

共用體 構造資料型別,也叫聯合體 用途 使幾個不同型別的變數共佔一段記憶體 相互覆蓋 結構體是一種構造資料型別 用途 把不同型別的資料組合成乙個整體 自定義資料型別 結構體變數所佔記憶體長度是各成員佔的記憶體長度的總和。共同體變數所佔記憶體長度是各最長的成員佔的記憶體長度。共同體每次只能存放哪個的一...

SNMP協議 共同體

snmp定義了管理程序 manager 和管理 agent 之間的關係,這個關係稱為共同體 community 描述共同體的語義是非常複雜的,但其句法卻很簡單。位於網路管理工作站 執行管理程序 上和各網路元素上利用snmp相互通訊對網路進行管理的軟體統統稱為snmp應用實體。若干個應用實體和snmp...

C語言共同體

共同體型別 設有字元型變數c 整型變數j,若這二個變數在使用過程中互斥,即當用到c時,一定不用j,當用j時,一定不用c,則無需為二個變數分配不同的儲存空間,而可使二個變數共同使用乙個儲存空間,如圖8.1所示。具有這種儲存特性的變數稱為共同體型別的變數。要定義共同體型別變數,必須先定義共同體型別。共同...