gpt4 book ai didi

c - 使用宏扩展创建多个#define 常量

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:25 24 4
gpt4 key购买 nike

我正在开发一个 open gl 驱动程序,需要使用 #define 定义一组常量。这些常量的名称与它们所代表的值一起迭代。它们还受另一个硬件特定的#define 设置的最大值的限制。如果可能的话,我想使用最大值来定义这些常量。

目前我对它们的定义如下:

#define GL_MAX_TEXTURE_UNITS 24
#define GL_TEXTURE0 0
#define GL_TEXTURE1 1
...
#define GL_TEXTURE24 24

我想要一些类似以下内容的东西:

#define GL_MAX_TEXTURE_UNITS 24
#define GL_TEXTURE(SOMETRICKYMACRO)

宏的定义方式使得在编译时我最终得到与第一种情况相同的扩展,但如果我想更改常量的数量,我只需要修改 GL_MAX_TEXTURE_UNITS。

最佳答案

C 预处理器本身不能生成新的预处理指令。如果您想做这样的事情,您需要在构建过程中使用单独的实用程序(可能是 shell 或 awk 脚本)生成头文件。

如果您发现自己真的需要这样的东西(以编程方式可变的值范围),这可能表明通过宏名称以符号方式引用它们是一个糟糕的设计选择。

关于c - 使用宏扩展创建多个#define 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com