(C ++)是否可以使用十六进制浮点值初始化float变量?
类似的东西:'0x011.1'//错误!
答案 0 :(得分:1)
不,C ++不支持文字,它不是标准的一部分。
非便携式解决方案是使用编译器将其添加为扩展名(GCC does this)。
便携式解决方法是在运行时使用例如字符串文字解析它们。 strtod()
或double
{{1}}。
正如评论中所指出的,您还可以选择将常量存储在C文件中。这样做需要您可以访问C99编译器,因为hex float literals是C99级别的功能。由于具有新C ++编译器但没有C99编译器(读取:Visual Studio)的环境非常常见,这可能不是一个可行的解决方案。