【C語言學習】封裝和模組化思想

來源:互聯網
上載者:User

標籤:使用   article   封裝   cpp   儲存類別   break   調用   print   snippet   

剛學習完C後,做的關於C的課程設計是在一個源檔案裡放了幾百行代碼,並且各個功能之間都是相互依賴的,這樣就會非常麻煩。

由於當我要改動某個地方的時候,就會牽連著要改動喝多的地方。而在實際的程式設計中。這也是不可取的。因此,模組化和封裝的思想就顯得非常重要了。。!

★static變數

static變數的一個顯著的作用就是能夠實現一個模組的封裝。

static儲存類別的特性決定了static聲明的全域變數僅僅能被本源檔案的函數引用。當在一個源檔案裡定義一個static全域變數後,其它檔案就不能通過使用“extern”關鍵詞來引用該全域變數,而僅僅能通過該源檔案提供的介面函數來訪問這個全域變數

★執行個體

我寫了一個簡單的實現楊輝三角的程式。當中,定義了一個靜態全域變數數組a[100][100]。然後後面的函數就是對該數組的一些操作。而該源檔案之外的函數就僅僅可以通過調用這些函數來完畢對數組的操作。

Pascal_triangle.c

#include <stdio.h>static int a[100][100];void Pascal_triangle(int num){    int i,j;    for(i = 1; i <= num; i ++)    {        a[i][0] = 1;        a[i][i-1] = 1;    }    for(i = 2;i < num; i ++)    {        for(j = 0; j < i -1; j ++)        {            a[i + 1][j + 1] = a[i][j] + a[i][j + 1];        }    }    for(i = 1; i <= num;i ++)    {        for(j = 0; j < num; j ++)        {            printf("%d ",a[i][j]);            if(i == (j + 1))            {                printf("\n");                break;            }        }    }}
Pascal_triangle.h

#ifndef PASCAL_TRIANGLE_H_INCLUDED#define PASCAL_TRIANGLE_H_INCLUDEDextern void Pascal_triangle(int num);#endif // PASCAL_TRIANGLE_H_INCLUDED
main.c

#include <stdio.h>#include "Pascal_triangle.h"int main(void){    int num;    printf("請輸入資料:\n");    scanf("%d",&num);    Pascal_triangle(num);    return 0;}
這樣做就實現了 楊輝三角的實現程式對外界的封住一個project中的其它源檔案中的函數不用瞭解楊輝三角函數裡面的詳細操作是怎樣進行的,僅僅須要使用模組中提供的介面函數就能夠了。這樣楊輝三角的實現模組就全然的獨立於其它的模組了。

所看到的:

Pascal_triangle.h標頭檔就是向外界提供一個實現楊輝三角的介面函數的聲明,這一點是非常重要的。

當這樣處理好一個源檔案之後。無論如何操作改動楊輝三角的實現函數,對其它的代碼沒有不論什麼影響。

可是有一點要注意:不要改動函數介面本身,由於一旦改動,其它代碼就可能會有大的改動


【C語言學習】封裝和模組化思想

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.