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

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

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

对标准不熟悉,标准中是否有相关规约,请达人们解疑。
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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关键字。
对于普通的局部变量,直接写成楼主那个样子是没有问题的。

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧