C++ C语言十六进制常量格式

C++ C语言十六进制常量格式,c++,hex,constants,literals,C++,Hex,Constants,Literals,许多语言允许您在长十六进制数中插入下划线,以提高可读性。我想把下划线转换成十六进制数,定义四十位硬件地址。例如,我想将0x040000000写为0x04_0000_0000 我很难连续数到零,但我能处理四人一组的问题 C或C++允许十六进制常数中的标点符号吗?< /P> 如果语言中不允许这样的内容,是否有实际的解决方法 谢谢,对C没有这样的支持。就这样。对于其他人来说:这是一个重复的问题;DR:C++14允许在任何整数文本中使用标点符号,标点器是”。因此,只需在现代编译器中编写0x04'000

许多语言允许您在长十六进制数中插入下划线,以提高可读性。我想把下划线转换成十六进制数,定义四十位硬件地址。例如,我想将0x040000000写为0x04_0000_0000

我很难连续数到零,但我能处理四人一组的问题

C或C++允许十六进制常数中的标点符号吗?< /P> 如果语言中不允许这样的内容,是否有实际的解决方法


谢谢,

对C没有这样的支持。就这样。对于其他人来说:这是一个重复的问题;DR:C++14允许在任何整数文本中使用标点符号,标点器是
。因此,只需在现代编译器中编写
0x04'0000'0000
。对于C:你最好的方法是写C是有效的C++,并使用现代C++编译器在C++模式下编译它,或者编写一个单独的预处理器来从整数文本中删除标点,或者修改Gcc/CLAN以接受这样的标点符号(这是非常小的变化——最多几行)。.@KubaOber这是值得回答的,因为它真的很有用!谢谢各位,我的问题基本上是重复的,但建议在任何情况下都非常有用。我想我会尝试使用C++编译器在我的代码,只是为了允许这样的标点符号。另外,多亏了添加了此功能的编译器编写人员。@KubaOber:你是认真地建议OP生成C编译器的非标准版本来解决这个小问题吗?那太疯狂了!