C語言小技巧c語言中static 函式和普通函式

2021-10-05 23:18:53 字數 964 閱讀 9628

#ifdef __cplusplus

extern "c"

#endif

__cplusplus是cpp中的自定義巨集,那麼定義了這個巨集的話表示這是一段cpp的**,也就是說,上面的**的含義是:如果這是一段cpp的**,那麼加入extern "c"處理其中的**。

typedef enum

errortype;

使用列舉enum定義錯誤碼

typedef double vector6[6];

typedef doubl matrix_66[6][6];

typedef struct

pos;

vector6 v1,v2;

matrix_66 mx=};

pos tool;

使用typedef定義陣列、結構體型別,typedef宣告的寫法和普通的宣告基本相同,只是把typedef這個關鍵字出現在宣告的前面。

在全域性變數之前加上關鍵字static,全域性變數就被定義成為乙個全域性靜態變數。

1)記憶體中的位置:靜態儲存區(靜態儲存區在整個程式執行期間都存在)

2)初始化:未經初始化的全域性靜態變數會被程式自動初始化為0(自動物件的值是任意的,除非他被顯示初始化)

3)作用域:全域性靜態變數在宣告他的檔案之外是不可見的。準確地講從定義之處開始到檔案結尾。

好處:<1>不會被其他檔案所訪問,修改

<2>其他檔案中可以使用相同名字的變數,不會發生衝突。

靜態函式

在函式的返回型別前加上關鍵字static,函式就被定義成為靜態函式。

函式的定義和宣告預設情況下是extern的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。

定義靜態函式的好處:

<1> 其他檔案中可以定義相同名字的函式,不會發生衝突

<2> 靜態函式不能被其他檔案所用。 

C語言中的小技巧

看看下面一段程式的功能 testrcunit.cpp 定義控制台應用程式的入口點。include typedef void cunit test case func type brief 測試用例鍊錶結點。儲存測試用例的函式指標和測試用例的名字。typedef struct tagcunittest...

c語言中的static和c 中的static比較

c語言中 static如果是修飾的全域性變數表示,該變數不能被其他檔案使用,函式也是一樣.如果修飾區域性變數,那麼,該變數存放在靜態區,只能被初始化一次,生命週期隨之檔案的結束而結束.c 中 static修飾的變數,只能在類外初始化,而且,必須初始化,可以由類直接訪問,可以在同族類中實現資料共享,在...

c語言中迴圈使用技巧

簡明來說不確定迴圈,不知道何時迴圈停止,而計數迴圈已知要執行多少次迴圈 其中涉及了三個重要部分 1.初始化計數器 2.計數器與有限值比較 3.每次迴圈對計數器進行有規律變化 下面用for迴圈進行舉例 for i 0 i 10 i for i 0 i 10 i 見課本習題五p138頁 17題 incl...