Java培訓(xùn)、Android培訓(xùn)、iOS培訓(xùn)、.Net培訓(xùn)、期待與您交流! (以下內(nèi)容是對黑馬蘋果入學(xué)視頻的個人知識點總結(jié)) (一)枚舉 1)枚舉類型的定義 枚舉是C語言中的一種基本數(shù)據(jù)類型,并不是構(gòu)造類型,它可以用于聲明一組常數(shù)。 一般形式為:enum 枚舉名 {枚舉元素1,枚舉元素2,……}; 2)枚舉變量的定義 ①先定義枚舉類型,再定義枚舉變量 ②定義枚舉類型時同時定義枚舉變量 ③省去枚舉名稱,直接定義枚舉變量 1 enum Sex { Man, Woman, Unkown}; (二)宏定義 1)不帶參數(shù)的宏定義 一般形式: #define 宏名 字符串 比如#define ABC 10 定義時需要注意: 1> 宏名一般用大寫字母,以便與變量名區(qū)別開來,但用小寫也沒有語法錯誤 2> 對程序中用雙引號擴起來的字符串內(nèi)的字符,不進行宏的替換操作。 3>宏名的有效范圍是從定義位置到文件結(jié)束。如果需要終止宏定義的作用域,可以用#undef命令 2)作用 其實和#include差不多,是把源程序中所有"宏名"替換成右邊的"字符串" #include <stdio.h> int main() { char *name = "COUNT"; printf("%s\n", name); #define COUNT 4 int ages[COUNT] = {1, 2, 67, 89}; for ( int i = 0; i<COUNT; i++) { printf("%d\n", ages[i]); } // 從這行開始,COUNT這個宏就失效 #undef COUNT int a = COUNT; return 0; } 2)帶參數(shù)的宏定義 一般形式: #define 宏名(參數(shù)列表) 字符串 在編譯預(yù)處理時,將源程序中所有宏名替換成字符串,并且將 字符串中的參數(shù) 用 宏名右邊參數(shù)列表 中的參數(shù)替換 帶參數(shù)的宏定義效率比函數(shù)高 1>使用注意: ① 宏名和參數(shù)列表之間不能有空格,否則空格后面的所有字符串都作為替換的字符串 ② 帶參數(shù)的宏在展開時,只作簡單的字符和參數(shù)的替換,不進行任何計算操作。所以在定義宏時,一般用一個小括號括住字符串的參數(shù)。計算結(jié)果最好也用括號括起來 #include <stdio.h> #define pingfang(a) ((a)*(a)) int main() { int c = pingfang(5+5)/pingfang(2); printf("c is %d\n", c); return 0; } (三)自定義 typedef 我們可以使用typedef關(guān)鍵字為各種數(shù)據(jù)類型定義一個新名字(別名)。 使用場合: ①基本數(shù)據(jù)類型 ② 指針 ③結(jié)構(gòu)體 ④枚舉 ⑤ 指向函數(shù)的指針 typedef struct { int age; } MyStu; typedef enum { Man, Woman } MySex; typedef int (*MyPoint)(int, int); typedef struct Person { int age; } * PersonPoint; (四)static和exterm 1)對函數(shù)的作用 外部函數(shù):定義的函數(shù)能被本文件和其他文件訪問 1> 默認(rèn)情況下所有函數(shù)都是外部函數(shù) 2> 不允許有同名的外部函數(shù) 內(nèi)部函數(shù):定義的函數(shù)只能被本文件訪問,其他文件不能訪問 1> 允許不同文件中有同名的內(nèi)部函數(shù) static對函數(shù)的作用: 1> 定義一個內(nèi)部函數(shù) 2> 聲明一個內(nèi)部函數(shù) extern對函數(shù)的作用: 1> 完整地定義一個外部函數(shù) 2> 完整地聲明一個外部函數(shù) (extern可以省略,默認(rèn)情況下聲明和定義的函數(shù)都是外部函數(shù)) 2)對變量的作用 1>對局部變量 static修飾局部變量的使用場合: 1.如果某個函數(shù)的調(diào)用頻率特別高 2.這個函數(shù)內(nèi)部的某個變量值是固定不變的 延長局部變量的生命周期:程序結(jié)束的時候,局部變量才會被銷毀 并沒有改變局部變量的作用域 總結(jié)來說: 1.extern可以用來聲明一個全局變量,但是不能用來定義變量 2.默認(rèn)情況下,一個全局變量是可以供多個源文件共享的,也就說,多個源文件中同名的全局變量都代表著同一個變量 3.如果在定義全局變量的時候加上static關(guān)鍵字,此時static的作用在于限制該全局變量的作用域,只能在定義該全局變量的文件中才能使用,跟其他源文件中的同名變量互不干擾
|
|