c++---聲明與定義

1、變量的聲明與定義

變量的定義:變量的定義用於爲變量分配存儲空間,還可以爲變量指定初始值。在一個程序中,變量有且僅有一個定義。

變量的聲明:用於向程序表明變量的類型名字。程序中變量可以多次聲明。

定義包含了聲明,但是聲明不包含定義,如

int a = 0;            //聲明、定義一個變量,並進行初始化
int b;                //聲明、定義一個變量,沒有進行初始化
extern int c = 0;     //聲明、定義一個變量,並進行初始化
extern int d;         //只是聲明瞭有一個變量,邊梁在哪定義的,需要編譯器編譯的時候去找。

extern聲明不是定義,也不分配存儲空間。事實上它只是說明變量定義在程序的其他地方。

注意事項:

在頭文件中不能放變量的定義,一般存放變量的聲明。因爲頭文件要被其他文件包含,如果放到頭文件當中就不能避免變量被多次定義。

使用extern來調用其他文件的變量之前需要確保變量已經被定義。常見方法是,全局變量聲明、定義同步進行。

全局變量直接聲明定義等效於前面加上extern關鍵字。

#include "stdafx.h"
#include "windows.h"
#include "ble.h"
int gSum = 0;  //等效於extern int gSum = 0;

int main()
{
	printfSum();
	while (true)
	{
		Sleep(10);
	}
    return 0;
}

2、函數的聲明與定義

函數定義:就是這個函數具體的實現

函數聲明:告訴編譯器在這個程序中會有這麼一個函數

定義的時候同時聲明。但如果只是聲明,編譯器只知道有這麼個函數,具體函數怎麼定義的要編譯器去找。

bool compare(int a,int b);   //這是函數的聲明,一般在*.h文件

boo compare(int a,int b)  //函數定義,一般在*.c文件;如果是在*.h文件中,這是函數的聲明、定義
{
    return a>b;
}

簡單來說,函數聲明沒有一對花括號,且以分號“;”結尾;函數的定義沒有分號而且要加上一對花括號 ,裏邊是函數的實現。函數一定要在定義前聲明否則會報錯 。如果在主函數中自定義函數,主函數前寫上函數的聲明 ,然後在主函數之後寫函數的定義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章