枚舉中可以聲明方法么 enum的用法和使用方法?
enum的用法和使用方法?之所以被稱為枚舉類型,就是因?yàn)槊A渴亲鳛閿?shù)據(jù)類型定義的一部分而枚舉或列出的,以下是枚舉類型聲明的示例:enum Roster {Tom, Sharon, Bill, Te
enum的用法和使用方法?
之所以被稱為枚舉類型,就是因?yàn)槊A渴亲鳛閿?shù)據(jù)類型定義的一部分而枚舉或列出的,以下是枚舉類型聲明的示例:
enum Roster {Tom, Sharon, Bill, Teresa, John}
該語句將創(chuàng)建一個(gè)名為 Roster 的數(shù)據(jù)類型。因?yàn)閱卧~ enum 是 C 關(guān)鍵字,所以它必須小寫,值得注意的是,數(shù)據(jù)類型本身的名字是以大寫字母開頭的。雖然這并非必須,但是絕大多數(shù)程序員都會(huì)釆用首字母大寫的形式。
和 Roster 數(shù)據(jù)類型關(guān)聯(lián)的命名整數(shù)常量被稱為枚舉量,Roster 數(shù)據(jù)類型的變量可能只是關(guān)聯(lián)到這些枚舉量的值之一,但它們的值是什么呢?
默認(rèn)情況下,編譯器設(shè)置第一個(gè)枚舉量為 0,下一個(gè)為 1,以此類推。在上述示例中,Tom 的值將是 0,Sharon 的值為 1,等等。最后一個(gè)枚舉量 John 的值為 4。
C語言32個(gè)關(guān)鍵字里,哪些可以用來聲明定義變量?該注意些什么?
首先從C語言的特點(diǎn)來說,它是一種靜態(tài)語言,所有變量都必須有一個(gè)類型,不管是基本類型,如int,char,float,double等,還是結(jié)構(gòu)體、聯(lián)合體、枚舉等自定義類型,只要是類型關(guān)鍵字,都可以用來定義變量。此外,還有一個(gè)變量類型叫指針,又分為變量指針和函數(shù)指針,其中變量指針指向特定數(shù)據(jù)類型的地址,函數(shù)指針指向函數(shù)的入口地址,只要將變量類型與*號(hào)結(jié)合就可以聲明指針。此處應(yīng)該注意一點(diǎn),指針是一個(gè)遞歸定義,也就是說指針可以指向一個(gè)指針,有點(diǎn)拗口,核心意思就是指針可以一直指下去。
函數(shù)指針類型的變量定義有點(diǎn)特殊,這里舉一個(gè)例子:
定義:typedef void (*myFun)(int)
?????? ? void FunImp(int param){/*函數(shù)內(nèi)容*/}
使用:myFun = FunImpmyFun(10)?
綜上,記住一個(gè)關(guān)鍵點(diǎn)定義變量一定要有類型,這個(gè)不同于Python等動(dòng)態(tài)語言,為了更清楚程序運(yùn)行時(shí)的狀態(tài),最好能知道每種類型的變量在內(nèi)存中占據(jù)的空間大小,這一點(diǎn)很關(guān)鍵,很多bug就是因?yàn)樽兞吭诓煌南到y(tǒng)中占據(jù)的內(nèi)存大小不一樣導(dǎo)致的。比如對(duì)于Int類型,在32位系統(tǒng)占用4字節(jié),而在64位系統(tǒng)就占據(jù)8字節(jié)。此外,還要清楚數(shù)據(jù)在內(nèi)存中的大小端模式,即高位字節(jié)在前還是地位字節(jié)在前。