剛學(xué)習(xí)完C后,做的關(guān)于C的課程設(shè)計是在一個源文件中放了幾百行代碼,而且各個功能之間都是相互依賴的,這樣就會很麻煩。因為當(dāng)我要修改某個地方的時候,就會牽連著要修改喝多的地方。而在實際的程序設(shè)計中,這也是不可取的。因此,模塊化和封裝的思想就顯得很重要了?。?!
static變量
static變量的一個顯著的作用就是可以實現(xiàn)一個模塊的封裝。
static存儲類別的特性決定了static聲明的全局變量只能被本源文件的函數(shù)引用。當(dāng)在一個源文件中定義一個static全局變量后,其他文件就不能通過使用“extern”關(guān)鍵詞來引用該全局變量,而只能通過該源文件提供的接口函數(shù)來訪問這個全局變量。
實例
我寫了一個簡單的實現(xiàn)楊輝三角的程序。其中,定義了一個靜態(tài)全局變量數(shù)組a[100][100],然后后面的函數(shù)就是對該數(shù)組的一些操作。而該源文件之外的函數(shù)就只能夠通過調(diào)用這些函數(shù)來完成對數(shù)組的操作。
Pascal_triangle.c
[cpp] view plain copy
1. #include
2.
3. static int a[100][100];
4.
5. void Pascal_triangle(int num)
6. {
7. int i,j;
8.
9. for(i = 1; i <= num; i ++) ?
10. {
11. a[i][0] = 1;
12. a[i][i-1] = 1;
13. }
14.
15. for(i = 2;i < num; i ++) ?
16. {
17. for(j = 0; j < i -1; j ++) ?
18. {
19. a[i + 1][j + 1] = a[i][j] + a[i][j + 1];
20. }
21. }
22.
23. for(i = 1; i <= num;i ++) ?
24. {
25. for(j = 0; j < num; j ++) ?
26. {
27. printf("%d ",a[i][j]);
28. if(i == (j + 1))
29. {
30. printf("\n");
31. break;
32. }
33. }
34. }
35. }
Pascal_triangle.h
[cpp] view plain copy
1. #ifndef PASCAL_TRIANGLE_H_INCLUDED
2. #define PASCAL_TRIANGLE_H_INCLUDED
3.
4. extern void Pascal_triangle(int num);
5.
6. #endif // PASCAL_TRIANGLE_H_INCLUDED
main.c
[cpp] view plain copy
1. #include
2. #include "Pascal_triangle.h"
3.
4. int main(void)
5. {
6. int num;
7. printf("請輸入數(shù)據(jù):\n");
8. scanf("%d",&num);
9. Pascal_triangle(num);
10. return 0;
11. }
這樣做就實現(xiàn)了楊輝三角的實現(xiàn)程序?qū)ν饨绲姆庾?,一個工程中的其他源文件里的函數(shù)不用了解楊輝三角函數(shù)里面的具體操作是如何進(jìn)行的,只需要使用模塊中提供的接口函數(shù)就可以了。這樣楊輝三角的實現(xiàn)模塊就完全的獨(dú)立于其他的模塊了。如圖所示:
Pascal_triangle.h頭文件就是向外界提供一個實現(xiàn)楊輝三角的接口函數(shù)的聲明,這一點(diǎn)是很重要的。
當(dāng)這樣處理好一個源文件之后,不管怎樣操作修改楊輝三角的實現(xiàn)函數(shù),對其他的代碼沒有任何影響。但是有一點(diǎn)要注意:不要修改函數(shù)接口本身,因為一旦修改,其他代碼就可能會有大的改動
-
封裝
+關(guān)注
關(guān)注
126文章
7901瀏覽量
142951 -
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136808 -
static
+關(guān)注
關(guān)注
0文章
33瀏覽量
10370
原文標(biāo)題:C語言學(xué)習(xí)|封裝和模塊化思想
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論