小猿圈c++之程序模塊化

程序模塊化設計要點c++

1. 模塊便是一個.c文件和一個.h文件的結合,頭文件(.h)中是對於該模塊接口的聲明;模塊化

不要把變量定義放入.h文件,這樣容易致使重複定義錯誤。函數

永遠不要在.h文件中定義變量。定義變量和聲明變量的區別在於定義會產生內存分配的操做,是彙編階段的概念;而聲明則只是告訴包含該聲明的模塊在鏈接階段從其它模塊尋找外部函數和變量學習

2.某模塊提供給其它模塊調用的外部函數及數據需在.h中文件中冠以extern關鍵字聲明;設計

3. 模塊內的函數和全局變量需在.c文件開頭冠以static關鍵字聲明;code

儘可能使用static關鍵字把變量定義限制於該源文件做用域,除非變量被設計成全局的。接口

4. 能夠在頭文件中聲明一個變量,在用的時候包含這個頭文件就聲明瞭這個變量。內存

不過有三個例外,如下三中實體的定義也可放到頭文件中。作用域

1.值在編譯時就已知的const 變量的定義能夠放到頭文件中get

如:const int num(10);

2.類的定義能夠放到頭文件中

3.inline 函數

這三個實體能夠定義在多個源文件中,只要在每一個源文件中的定義相同。

實例:

#include <stdio.h>

#include <stdlib.h>

// C中定義的變量默認就是extern的,

// 所以通常來講int a = 10 <==> extern int a = 10;

//若是聲明有初始化式,就被看成定義,即便前面加了extern。

//只有當extern聲明位於函數外部時,才能夠被初始化。

int main(void)

{

    extern int  a;          //  聲明一個外部extern的int型變量a

    //  這是個聲明而不是定義,聲明A是一個已經定義了的外部變量

    //  注意:聲明外部變量時能夠把變量類型去掉如:extern a;

    extern int b = 10;          //  錯誤,extern聲明位於函數外部時,才能夠被初始化

    printf("a = %d\n", a);

    return EXIT_SUCCESS;

}

這就是一個簡單的c++開篇,代碼都是模塊化的,在一個模塊下開始寫本身的邏輯代碼,這是一個簡單寫代碼的格式,之後更復雜的邏輯結構也是這樣的形式,想要學習it技術知識的,能夠去小猿圈,一個專一免費的學習網。

相關文章
相關標籤/搜索