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;
}
简单来说,函数声明没有一对花括号,且以分号“;”结尾;函数的定义没有分号而且要加上一对花括号 ,里边是函数的实现。函数一定要在定义前声明否则会报错 。如果在主函数中自定义函数,主函数前写上函数的声明 ,然后在主函数之后写函数的定义。