巢狀呼叫很好理解,就是在乙個子程式裡呼叫另乙個子程式。
void print(char *a)
void hello()
而鏈式訪問就是把乙個函式的返回值直接當作實參傳遞給下乙個函式。
int ret = strlen(strcat("hello","world"));
上例中strcat 的返回值是char型別,是目標串的首位址,而這個函式已然完成了自己的使命,連線了兩個字串為什麼還要返回乙個char 型別呢?原因就在於可以像上述表示式一樣,進行鏈式訪問。
剛開始學習c語言的時候,所有原始碼都是寫在乙個原始檔裡的,當真正寫工程專案以後,為了保證源**私隱性,和結構清晰,就要把所有函式宣告寫在標頭檔案裡,把函式定義寫在名稱相對應的c檔案裡,然後使用的時候在主函式裡include所使用的標頭檔案就可以了。
此時的目錄結構應該是這樣的
標頭檔案之後如果要想把函式定義打包生成庫檔案,可以在vs2008編譯環境下 add.h
原始檔 add.c
test.c
右擊左側專案,屬性,配置型別,選擇靜態庫
ctr + f5 生成 .lib 檔案
如果要在其他程式中使用,需要專案資料夾裡有標頭檔案,和庫檔案
然後在程式**之前加入#pragma comment(lib, "add.lib")
外部鏈結屬性:由於函式具有此屬性,因而可以在當前原始檔以外的檔案裡訪問。比如add.c 裡面的add函式,可被test檔案訪問。而如果在定義add函式時加上 static ,那麼該函式具有內部連線屬性,就不能被其他原始檔訪問了。而在add函式內的任何區域性變數都是無鏈結屬性,不能被訪問。**
extern關鍵字:保證變數只宣告,不定義。
修飾區域性變數:改變生命週期
測試驅動開發,英文全稱test-driven development,簡稱tdd,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的**之前先編寫測試**,然後只編寫使測試通過的功能**,通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的**,並加速開發過程。
C語言 函式(宣告 定義 呼叫)
1 函式的宣告 函式有兩種型別 1 有返回值 前面用 int float double char來定義的,如int even int n 前面的int就是返回值型別,注意最後要加分號。include inteven int n 2 沒有返回值,就用void寫在最前面,如void even int n...
C 函式的宣告定義
include 宣告 extern char mystrstrpoint char dest,char src extern char mystrstrarr char dest,char src extern char mystrcat char dest,char src extern void...
C 變數宣告定義
1.extern 宣告變數,在乙個檔案裡宣告以後,表示該變數要去其它檔案找變數,告訴編譯器 你現在編譯的檔案中,有乙個識別符號雖然沒有在本檔案或本檔案當前位置中定義,但是它是在別的檔案中或本檔案其它位置定義的全域性變數,你要放行!宣告變數 extern type variable 有extern,無...