c語言中結構體的一般定義 結構體與什么兼容?
結構體與什么兼容?C 中的結構體與類的區(qū)別只在于結構體的成員默認為公有成員(public可見性),而類的成員默認為私有成員(private可見性),C 中的結構體不同于C語言里的結構體,C里的結構體只
結構體與什么兼容?
C 中的結構體與類的區(qū)別只在于結構體的成員默認為公有成員(public可見性),而類的成員默認為私有成員(private可見性),C 中的結構體不同于C語言里的結構體,C里的結構體只能封裝一些單一的數(shù)據(jù),不能含方法,但在C 的結構體內可以有構造函數(shù),成員函數(shù),還可以指定成員的訪問權限(如public和private)。
1、類可以被認為是結構體的一個升級版,它是由結構體演變過來的,在此基礎上加了一些限制,以便更好實現(xiàn)面向對象的設計。結構體基本用在很多數(shù)據(jù),需要一個結構體來封裝這些數(shù)據(jù)。而類的話,是面向對象的思想,可以有很多接口讓人調用,私有變量等外部不能調用,還有保護類型的變量。
2、結構體也可以被認為是一種特殊的類,它不存在任何函數(shù),構造和析構函數(shù)也沒有,而且是一個公共的的類;相關推薦gtgtC 中適用于類和結構體的內存池模板類
3、C 類和結構體概念基本一致,區(qū)別在于結構體在默認情況下成員是公共的(public),類在默認情況下成員是私有的(private),其他的都一樣,類有的結構體也有。
4、C 結構體內部成員變量及成員函數(shù)默認的訪問級別是public,而c 類的內部成員變量及成員函數(shù)的默認訪問級別是private。
5、C 結構體的繼承默認是public,而c 類的繼承默認是private。
6、類要加上public變成共有的才能被訪問,而結構本身就是共有的可直接訪問。
7、C 中struct與class本質上相同的,只是默認的訪問權限不同,之所以要保留struct,是為了與C兼容。
與C中結構體不同的是,C 中定義結構體變量時可以不加struct關鍵字,如:
C 的struct,enum,union與C語言有何區(qū)別?
enum是枚舉,就是某個變量的值是能夠列舉的,比如,星期的話就每周1到7,月的話就1到12、而struct的話是對于某個變量是有很多數(shù)據(jù)類型構成一個總體的,比如學生這個變量,他需要學號,姓名,年齡,性別等等,這個時候就需要定義結構體了。而uninon的話呢,其中定義的變量都只占一個內存。。。
C/C 語言中struct結構體定義中__packed的作用是什么?
1、__packed是字節(jié)對齊的意思。
比如說int float double char它的總大小是4 4 8 1 17
但如果不用__packed的話,系統(tǒng)將以默認的對齊(假設是4字節(jié)),那么它占4 4 8 4 20;(不足4字節(jié)以4字節(jié)補齊)。
2、在VS2008上述方法不能用了,如果想設置對齊,只要選擇工程屬性-配置屬性-C/C -代碼生成就能設置,它的選項有1、2、4、8、16。在GCC下,可以在加上#pragma pack(4) 4字節(jié)對齊的意思,其它同理。