【发布时间】:2017-06-01 16:50:43
【问题描述】:
我有一个在包含二维数组(通道)的头文件中定义的结构。 我想在编译时定义数组的大小,例如通过设置环境变量。
#ifndef GAMEBOARD_H
#define GAMEBOARD_H
struct gameboard
{
int lanes[4][4];
int isWonBy;
int isFinished;
int nextPlayer;
};
struct gameboard *put(struct gameboard *board, int laneIndex);
#endif
我想在运行时在此结构的所有实例之间保持数组的大小不变,但在编译时定义该大小,而不必每次都更改源代码。数组的高度和宽度应该是分开的,并且有默认值。
【问题讨论】:
-
您可以让构建系统从环境中获取维度(或以其他方式设置维度),然后让构建系统设置编译器预处理器标志来为维度定义宏,并使用这些源中的宏。
标签: c constants header-files compile-time-constant