首页 > 后端开发 > C++ > C 在编译和语法方面与 C 有何细微差别?

C 在编译和语法方面与 C 有何细微差别?

Susan Sarandon
发布: 2024-12-17 04:54:25
原创
534 人浏览过

How Does C Differ Subtly from C   in Terms of Compilation and Syntax?

C 与 C 的微妙偏离

虽然人们普遍认为 C 是 C 的子集,但仔细检查会发现细微的差异。以下是在 C 中编译的代码在 C 中遇到障碍的一些实例:

没有暂定定义

在 C 中,重新定义变量是非法的,与 C 不同,在 C 中,暂定定义是非法的。定义允许后续重新定义。

数组类型不兼容性

C 区分有大小和无大小的数组类型,使得 int[] 和 int[N] 不兼容。然而,C 允许它们互换使用。

K&R 函数语法

C 不允许 K&R 风格的函数定义,其中函数参数列表直接跟在返回类型后面.

嵌套结构作用域

C 定义嵌套结构具有类作用域,而 C 则遵循本地作用域的早期行为。

默认 int

在 C 中,在没有显式类型说明符的情况下使用“auto”是无效的,这与在 C 中默认为int.

其他 C99 不兼容性

C99 引入了更多差异:

数组维度说明符

C不允许在函数参数的数组维度中使用声明说明符,这在 C 中允许。

可变长度数组

C 忽略对可变长度数组的支持,而 C 通过声明具有非常量大小的数组来允许它们。

灵活阵列成员

C 在结构中缺少灵活的数组成员,这是 C 中存在的功能。

限制限定符

C 引入了限制限定符协助别名分析,但在 C 中不支持。

以上是C 在编译和语法方面与 C 有何细微差别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板