是“ double x = 0.0d”中的“ d”; g ++扩展?

时间:2019-11-05 08:02:19

标签: c++ g++

我遇到了一些基本上是以下代码:

double x = 0.0d;

d向我暗示这是双打的后缀,但是documentation for floating point literals没有后缀,并且我在GNU g ++文档中找不到任何提及。编译器也不会使用-Wall发出任何警告。


我做了一个small sample on GodBolt,用-Wpedantic回答了我的问题,但是我仍然希望看到此问题的文档。

*请注意,存在similar question for Java

1 个答案:

答案 0 :(得分:4)

这在ISO / IEC TR 24732 a.k.a. WG14 N1312技术报告“编程语言C的扩展以支持十进制浮点算术”中进行了指定。

它将Notification Subscription定义为普通d类型的后缀,并为十进制浮点类型定义了其他几个后缀。

See it here (PDF)

gcc文档提到了所有其他后缀,但没有提到double。这是一个遗漏。