C語言函數和程序結構
通過函數可以把大的計算任務分解成若干個較小任務,從而使得思路更加清晰,同時函數也大大提高了代碼的復用率,提高了工作效率。要注意的是多函數之間應該盡可能地高聚合低耦合。另一方面,一個程序可以保存在一個或者多個源文件中。各個文件可以單獨編譯。
注意:一般地,頭文件中不會放那些在程序運行時發生具體效應的語句。例如聲明(定義)一個變量的語句是不會放在頭文件中的。再例如結構體聲明(定義)語句就可以放頭文件里,但結構體變量聲明(定義)語句是不會放在頭文件中的。
make工具可以用來進行項目管理。他可以根據記錄在Makefile文件中的要求完成整個編譯過程。實際項目中Makefile文件內容復雜,往往還有可以制作Makefile文件的工具。
linux開源軟件經典的軟件安裝步驟是直接從軟件源程序開始的,步驟:
(1)make
(2)make install
(3)make clean
?
1 /* 2 Filename:add.h 3 */ 4 #ifndef __ADD_H__ 5 #define __ADD_H__ 6 void add(int, int); 7 #endif //__ADD_H__
1 /* 2 Filename: add.c 3 */ 4 #include "add.h" 5 int result; 6 void add(int a , int b) 7 { 8 result = a + b; 9 }
1 /* 2 Filename: sub.h 3 */ 4 #if !defined(__SUB_H__) 5 #define __SUB_H__ 6 int sub(int, int); 7 #endif //__SUB_H__
1 /*Filename: sub.c 2 */ 3 #include "sub.h" 4 int sub(int a, int b) 5 { 6 return a - b; 7 }
?
1 /* 2 Filename: main.c 3 */ 4 5 #include "add.h" 6 #include "sub.h" 7 8 #include <stdio.h> 9 extern int result;//?聲明result
10 int main() 11 { 12 add(10, 10); 13 printf("%d + %d = %d \n", 10, 10, result); 14 printf("%d - %d = %d \n", 10, 10, sub(10, 10)); 15 16 return 0; 17 }
?
Makefile
1 a.out : add.o sub.o main.c 2 gcc -c main.c 3 gcc sub.o add.o main.o 4 add.o:add.c 5 6 gcc -c add.c 7 8 sub.o:sub.c 9 gcc -c sub.c 10 clean: 11 rm *.o a.out
?