[ARM入门] 关于keil中的C89和C99这种都是什么?

[复制链接]
 楼主| yangjiaxu 发表于 2025-4-30 14:50 | 显示全部楼层 |阅读模式
关于keil中的C89和C99这种都是什么?这种对编程有啥意义吗?
呐咯密密 发表于 2025-4-30 15:57 | 显示全部楼层
​C89和C99代表C语言的两个不同标准版本,它们决定了代码的语法规则、编译器行为以及可用特性。
jobszheng 发表于 2025-4-30 22:09 来自手机 | 显示全部楼层
我们现在使用C99了。主要一些特性的实现。
dffzh 发表于 2025-5-9 14:08 | 显示全部楼层
标准约束,一定程度上可以规范你写的代码,提高你的代码质量,减少代码Bug产生数量。
fortunely 发表于 2025-5-27 00:25 | 显示全部楼层
这是两种C语言标准,不同的编译器可能支持不一样。
C89是1989年ANSI制定、1990发布(又称C90),C99是在C89基础上改进的,1999年发布。

说2个最明显区别:
1) 变量声明
C89,变量必须在作用域开头:
  1. void func() {
  2.     int a; // 合法
  3.     a = 10;
  4.     int b; // 非法(C89不允许在语句后声明变量)
  5. }
C90,变量可在任意位置声明:
  1. void func() {
  2.     int a = 10;
  3.     printf("%d", a);
  4.     int b = 20; // 合法(C99允许)
  5. }

2)注释
C89只支持"/* ... */",C99添加了对"// ..."的支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

783

主题

3316

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部
认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

783

主题

3316

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部