1、定义:
-
作用:告诉编译器我这个数据在内存中需要多大的空间
-
常量:程序运行中不能改变的量。
-
变量:程序运行中可与被改变的量,存在于内存中。
变量需要定义:
定义是为了给变量分配内存,可以为变量赋初值。
注意:全局变量或静态变量初始值为0,局部变量初始化为随机值。
在 C/C++ 中,变量的声明和定义区别并不大,定义和声明往往是同时发生,变量定义时,会根据变量类型分配空间。
-
int value ; //声明 + 定义 struct Node { // 声明 + 定义 int left; int right; };
2、声明
-
声明是用来告诉编译器变量的名称和类型,而不分配内存。
-
extern int var; // 声明 extern int ble =10; // 定义 typedef int INT; // 声明 struct Node; // 声明
区分定义和声明:通常变量的定义和声明是同时发生的,注意:extern 变量类型 变量名 仅是声明。
-
函数的声明是通知编译器函数名称、参数数量和类型以及函数返回类型,例如:
-
int Max(int x, int y);
-
函数的定义是为函数分配内存,例如:函数定义包含了函数的具体实现。 ([定义的本质是在内存开辟空间,给这个空间取名])
-
函数声明和定义区别:函数只要有实现(存在函数体 { …… } )即为定义,否则为声明。可以这样理解:函数声明是说明函数是什么,函数定义是说明函数做什么。
总结:声明和定义的区别:
(1)变量/函数可以声明多次,变量/函数的定义只能一次。
(2)声明不会分配内存,定义会分配内存。
(3)声明是告诉编译器变量或函数的类型和名称等,定义是告诉编译器变量的值,函数具体干什么。
long类型 在Windows 4个字节 linux 32位4个字节 64位8个字节。