前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重读《c primer plus》发现了99%的人都会忽略的知识点之ANSI/ISO C标准

重读《c primer plus》发现了99%的人都会忽略的知识点之ANSI/ISO C标准

作者头像
心跳包
发布2021-09-26 15:48:04
4110
发布2021-09-26 15:48:04
举报
文章被收录于专栏:嵌入式智能硬件

1.你需要知道什么是ANSI/ISO C标准

ANSI C是由(ANSI)及(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实现, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准。

2.ANSI 编译器在遇到代码警告类型不匹配的情况

extern int func(float); int func(x) float x;

不匹配的原因:

旧的 C 编译器 (包括未使用原型和变长参数列表的 ANSI C) 会 ``放宽" 传入 函数的某些参数。 浮点数被升为双精度浮点数, 字符和段整型被升为整型。 对于旧式的函数定义, 参数值会在被调函数的内部自动转换为对应的较窄 的类型。

怎么写可以避免警告呢?

  • 使用新型的语法一致性:

int func(float x) { ... }

  • 把新型原型声明改成跟旧式定义一致。

extern int func(double);

3.关键字const

const 关键字含义是 ``只读的"; 用它限定的对象是运行时 (同常) 不能被赋值的对象。因此用 const 限定的对象的值并 不完全是一个真正的常量。

为什么要用const

“它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。” ——引自百度百科


const的主要作用:

  1. 不可变性。
  2. 便于进行类型检查,方便编译器处理,消除隐患。
  3. 避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!
  4. 保护被修饰的东西,防止意外的修改,增强程序的健壮性。
  5. 节省空间,避免不必要的内存分配。

未完待续

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.你需要知道什么是ANSI/ISO C标准
  • 2.ANSI 编译器在遇到代码警告类型不匹配的情况
    • extern int func(float); int func(x) float x;
    • 3.关键字const
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档