论坛» 嵌入式开发» MCU

C语言——-定义与声明——问题的讨论

专家
2013-05-12 11:17 1楼

什么是定义?什么是声明?它们有何区别?

例子:

(A)int i ;

(B)extern int i

哪个是定义?哪个是声明?或者都是定义或者都是声明?

高工
2013-05-12 11:18 2楼
A定义,B声明,哈哈哈
专家
2013-05-12 11:31 3楼
说说两者的区别
院士
2013-05-12 13:29 4楼

定义具有实体。

声明只需要说一下即可。


专家
2013-05-14 09:17 5楼

A是定义,B一般是另一个源文件里已经定义,在此使用必须进行声明;二者的作用域不一样,A的作用域只在定义的源文件里起作用,B的作用域是整个程序。

高工
2013-05-14 10:44 6楼

A是定义的话,是不是需要赋值??


要是没赋值,那么 这个变量也就不会在内存中分配空间了吧!!

助工
2013-05-14 20:39 7楼
应该是给分配空间的 有些编译器没貌似会自动赋值成0
高工
2013-05-14 21:35 8楼
定义是创造,声明是挂牌。

我也再举个例子吧。

void init(void);//声明

extern void task();//外部声明

void main()

{

init();

while(1)task();

}

void init() //定义

{

<代码>

}

高工
2013-05-15 08:47 9楼
要是程序没用到这个变量,估计不会分配空间吧!!
助工
2013-05-16 22:26 10楼
如果程序里用到了 就会赋值 如果没用到 这个变量就没有存在的意义了
共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]