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

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

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

对标准不熟悉,标准中是否有相关规约,请达人们解疑。
...全文
76 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关键字。
对于普通的局部变量,直接写成楼主那个样子是没有问题的。
  • 打赏
  • 举报
回复
相关推荐
军队作战SLG小游戏策划案+公式设计+JSON实例模拟打包 公元135年,相传高祖病重后继无人,宦官专权祸乱朝纲,同年群雄逐鹿风起云涌。乱世的暗流涌动,引起了不少英雄豪杰的注意。在广袤的疆域上,战马赫赫战鼓阵阵,纷飞的战火中,是敌人还是朋友也逐渐清晰了起来,这一战不止为了义气还为了和平。 在你身边的从军队中一路砍杀过来的勇士,也行侠仗义的游侠,也代父从军的女子,也从小被培养的刺客。他们组成了一支军队,运用自己擅长的作战方式,听从你的指挥,一切性命都系在你的身上,如何判断作战情况都在你的一念之间。当然军师会协助你,招兵买马,扩充军队,上阵步兵,作战方式均可与其商讨,谋而后立裁决果断并不冲突。 当然战场上武器一定是需要配备的,作战中失去了武器就等同于失去了性命,如何为军队中所人配置趁手的武器也是作为主帅的你需要考虑的事情。训练军队的同时也要建设城镇,满满的谷仓,成群的鸡鸭,后方稳健的保障,前方作战才能更加的果敢。 乱世出英雄,在各种战役中飞快成长,创建一番属于自己的天地吧 实例对比描述: 实例说明: 实例展示了不同情况的军队作战效果,只需要调整参数既可以达到差异化目的。 第一组实例:1000军队的骑兵对战1000军队的骑兵,先手攻击方的
发帖
C语言
加入

6.5w+

社区成员

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