十六进制值的前缀为0x

Prefixing hex value with 0x

本文关键字:0x 前缀 十六进制      更新时间:2023-10-16

我正在查询OpenGL中的GL_TYPE,它将十六进制值报告为整数,因为它应该。

例如:0x1406是#定义为GL_FLOAT,但正在从OpenGL以整数形式作为5126给我。

不幸的是,OpenGL不只是返回类型,它也不只是接受整数(读:十六进制)值。它显然需要在使用前加上0x前缀。

我试图为自己节省一个开关/情况,而不是转换/转换在飞行中,但我没有看到其他的方法。我还有别的选择吗?

不清楚您心目中的"转换"类型:0x1406 = 5126。它们只是在源代码中写同一个数字的不同方式,编译器将它们都翻译成运行时使用的二进制形式。

您应该能够使用==运算符将glGetProgramResource的结果与GL_FLOAT之类的常量进行比较,而不管该常量在源代码中是否定义为0x1406或5126。