前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言 | 每日基础(56)

C语言 | 每日基础(56)

作者头像
小林C语言
发布2020-09-17 15:51:25
3900
发布2020-09-17 15:51:25
举报

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:为什么声明 extern int f(struct x *p); 报出了一个奇怪的警告信 息 “结构 x 在参数列表中声明”?

阿一:与 C 语言通常的作用范围规则大相径庭的是, 在原型中第一次声明 (甚至提 到) 的结构不能和同一源文件中的其它结构兼容, 它在原型的结束出就超出了作用 范围。要解决这个问题, 在同一源文件的原型之前放上这样的声明: struct x; 它在文件范围内提供了一个不完整的结构 x 的声明, 这样, 后续的用到结构 x 的声明至少能够确定它们引用的是同一个结构 x。

读者:我不明白为什么我不能象这样在初始化和数组维度中使用常量: const int n = 5; int a[n];

阿一:const 限定词真正的含义是 “只读的”; 用它限定的对象是运行时 (同常) 不能 被赋值的对象。因此用 const 限定的对象的值并不完全是一个真正的常量。在这 点上 C 和 C++ 不一样。如果你需要真正的运行时常量, 使用预定义宏 #define (或enum)。

有时候,正是那些意想不到之人,成就了无人能成之事。

——图灵

小编二维码

长按/加好友

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档