小编use*_*592的帖子

#define(C预处理器)的数组格式

可能是一个天真的问题 - 我曾经在20年前编程并且自那时起编码不多.我C preprocessor对此后作品如何萎缩的记忆......

我正在编写一个非常简单的C程序,我试图声明一些静态全局数组,但是它的大小arrays将依赖于(以非平凡的方式)MODE变量.类似下面的简化示例.

两个快速点:我知道我可以arrays根据任何所需的最大尺寸来确定尺寸MODE,但我不想这样做,因为(与下面的简化示例不同)有时候这些尺寸中的一小部分会非常大其他人很小.

此外,我想使用静态定义的全局数组 - 而不是在运行时动态分配它们.我希望编译器在编译时具有大小.

//** Simplified example of what I'd like to do **//    
#define SIZE_LIST_1[5] = {2, 7, 23, 33, 12, 76}  // I don't think this is valid syntax 
#define SIZE_LIST_2[5] = {11, 65, 222, 112, 444}

#define MODE 4
#define S1 SIZE_LIST_1[MODE]
#define S2 SIZE_LIST_2[MODE] 

int a[S1], b[S2];
Run Code Online (Sandbox Code Playgroud)

c c-preprocessor

10
推荐指数
4
解决办法
5万
查看次数

标签 统计

c ×1

c-preprocessor ×1