打印
[ARM入门]

关于keil中的C89和C99这种都是什么?

[复制链接]
2106|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangjiaxu|  楼主 | 2025-4-30 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
呐咯密密| | 2025-4-30 15:57 | 只看该作者
​C89和C99代表C语言的两个不同标准版本,它们决定了代码的语法规则、编译器行为以及可用特性。

使用特权

评论回复
板凳
jobszheng| | 2025-4-30 22:09 | 只看该作者
我们现在使用C99了。主要一些特性的实现。

使用特权

评论回复
地板
dffzh| | 2025-5-9 14:08 | 只看该作者
标准约束,一定程度上可以规范你写的代码,提高你的代码质量,减少代码Bug产生数量。

使用特权

评论回复
5
fortunely| | 2025-5-27 00:25 | 只看该作者
这是两种C语言标准,不同的编译器可能支持不一样。
C89是1989年ANSI制定、1990发布(又称C90),C99是在C89基础上改进的,1999年发布。

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

2)注释
C89只支持"/* ... */",C99添加了对"// ..."的支持

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

761

主题

3259

帖子

10

粉丝