C——定义与声明

来源:互联网 发布:淘宝网积木玩具 编辑:程序博客网 时间:2024/05/21 17:05

声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配!

有两重含义:

1.告诉编译器,这个编译器已经匹配到一块内存上了。

2.告诉编译器,这个名字已经被预订了,别的地方不能用它来作为变量名或对象名。

 

定义:就是创建一个对象,为这个对象分配一块内存并给它娶一个名字,也就是对象名或变量名。

一个变量或对象在一定的区域中只能被定义一次,如定义多次,编译器会提示用户重复定义。

定义和声明最重要的区别是:定义创建了对象并为这个对象分配了内存,申明没有分配内存。

 

int i;——声明+定义

 

一个声明就是一个定义,除非
-   它声明了一个没有详细说明函数体的函数

int   fun(int,int);

这个没得说
-   它包含一个extern定义符并没有初始化或函数体

extern int i;——是声明非定义

extrn int i = 0;—— 是声明也是定义(也就是如果紧接有一个extrn int i = 1;是错误的,重定义了,而extern int i;是可以的,可以声明多次)
-   它是一个包含在一个类之内的数据成员的声明
-   它是一个类的声明
-   它是一个typedef的声明

一个定义就是一个声明,除非
-   它定义了一个静态成员函数
-   它定义了一个成员函数

-   它是一个包含静态数据成员的声明

原创粉丝点击