C浮点数表示法

Sco*_*zer 2 c floating-point gcc

我注意到这段代码编译但我不明白为什么:

int main() {
  double z = 0.000000000000001E-383DD;
}
Run Code Online (Sandbox Code Playgroud)

但我不确定DD数字的末尾是什么意思.我看过标准,但没有提到这一点.

我从以下命令获得了这个数字:

$ gcc -dM -E - < /dev/null
#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define __DEC64_DEN__ 0.000000000000001E-383DD
...
Run Code Online (Sandbox Code Playgroud)

这可能是GCC扩展吗?

ken*_*ytm 7

对,它是一个GCC扩展,表示64位十进制浮点文字.

其他扩展名后缀: