結構體在程序中的應用是很廣泛的,要處理的問題越復雜,數據量越多月雜,就越需要用到結構體。比如網絡,內核,驅動等等。熟練使用結構體對每個程序員都是至關重要的。一個好的結構體不僅能使程序體系結構清晰,而且使得操作靈活,可擴展性強。linux網絡之所以很強大,這和它裡設計合理的數據結構有很大關系。
結構體定義:
結構體初始化:
方式一:
方式二:
方式三:
struct a dd={4,2};
在定義中,可以限制變量的位的作用域,比如上面的:int xx:4;這表明xx的有效域只有4位,也就是能給他賦值的最大值為15,如果超過這個值,編譯器就會報錯:warning: overflow in implicit constant conversion。
在這裡如果你給xx賦值為15,如:
然後輸出:
printf("cc.xx = %d\n",cc.xx);
結果會是:-1
因為這裡定義的xx為int 型,15的二進制位1111,最高位為1,表示為負數,所以取反加1後為0001。所以是-1。
這種位域操作的好處是當你不需要用到你定義的類型的長度時,可以加位域操作以節省內存空間。