在 C 中允许重复的 const 限定符但在 C++ 中不允许?

Duplicate const qualifier allowed in C but not in C++?(在 C 中允许重复的 const 限定符但在 C++ 中不允许?)
本文介绍了在 C 中允许重复的 const 限定符但在 C++ 中不允许?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

示例代码片段

const const const int x = 10;   
int main()
{}

在 C 中编译,但不在 C++ 中.为什么它会在 C 中编译?我认为这在 C 中也会失败.没关系.

gets compiled in C but not in C++. Why does it get compiled in C? I thought this would fail in C as well. Never mind.

C++ 标准的哪一部分禁止使用重复的 const,而 C 标准的哪一部分允许这样做?

Which part of the C++ Standard forbids the use of duplicate const and which part of the C standard allows this?

推荐答案

C99 §6.7.3/4:

C99 §6.7.3/4:

如果同一个限定符在同一个 specifier-qualifier-list 中出现多次,无论是直接出现还是通过一个或多个 typedef 出现,行为与如果它只出现一次.

If the same qualifier appears more than once in the same specifier-qualifier-list, either directly or via one or more typedef s, the behavior is the same as if it appeared only once.

是的,那是有效的 C99,你的发现是正确的.

Yes, that is valid C99, and your discovery is correct.

这篇关于在 C 中允许重复的 const 限定符但在 C++ 中不允许?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Rising edge interrupt triggering multiple times on STM32 Nucleo(在STM32 Nucleo上多次触发上升沿中断)
How to use va_list correctly in a sequence of wrapper functions calls?(如何在一系列包装函数调用中正确使用 va_list?)
OpenGL Perspective Projection Clipping Polygon with Vertex Outside Frustum = Wrong texture mapping?(OpenGL透视投影裁剪多边形,顶点在视锥外=错误的纹理映射?)
How does one properly deserialize a byte array back into an object in C++?(如何正确地将字节数组反序列化回 C++ 中的对象?)
What free tiniest flash file system could you advice for embedded system?(您可以为嵌入式系统推荐什么免费的最小闪存文件系统?)
Volatile member variables vs. volatile object?(易失性成员变量与易失性对象?)