标准C或K&R C是否有约定变量不能定义代替声名

alickguo 2006-04-24 04:19:03
偶见一代码批改:
unsigned short index = 0; <---------------------------------------------C++语法,声明定义分开

变量用过定义完成声名,貌似不是C++约定的吧?

对标准不熟悉,标准中是否有相关规约,请达人们解疑。
...全文
79 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
alickguo 2006-04-24
OK,结贴。
sigh.纠正了我错误了N久的理解。
  • 打赏
  • 举报
回复
iamcaicainiao 2006-04-24
摘自《c++编程思想》p32
……变量声明告知编译器变量的外表特征……
例如:int a;
声明变量a是一个整数,但是,这段代码有足够的信息让编译器为a分配空间,而且编译器也确实这么做了。如果想告诉编译器,这只是个声明,它的定义在别的地方,请用关键字extern。例如:
extern a;
他表明a是在本文件以外的文件中定义的,或者是在本文件的后面的部分定义的。
  • 打赏
  • 举报
回复
jixingzhong 2006-04-24
变量的声明一般只有 外部变量才有,
(至少我没有看到过其他的)
声明的时候,
变量不会被分配空间。
而定义的时候, 变量的空间将被分配。

另外,
如果外部变量出现的都是同一种情形: 如 extern unsigned short index
那么,
第一次出现这个 “声明” 的地方将被视为 “定义”,(这个表述不知楼主懂不懂....)
(其他地方都是对这个变量的 声明)
  • 打赏
  • 举报
回复
jixingzhong 2006-04-24
变量不能定义代替声名
==========
定义和声明本来就是完全不同的两回事情 ....
所以也无所谓 代替 一说。
  • 打赏
  • 举报
回复
Maxwell 2006-04-24
看不懂搂主说的。
好像只有全局变量才需要声明,那个要用extern关键字。
对于普通的局部变量,直接写成楼主那个样子是没有问题的。
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 小灸舞
申请成为版主
帖子事件
创建了帖子
2006-04-24 04:19
社区公告
暂无公告