【发布时间】:2013-04-21 21:21:29
【问题描述】:
我有以下矩阵;
Vertex axisVertices[] =
{
{ { x_0, y_0, 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f, 1.0f } }, // origin
{ { x_Max, y_0, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }, // eixo y
{ { x_0, y_Max, 0.0f, 1.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } } // eixo x
};
#define x_0 0.0f
#define y_0 0.0f
#define x_Max 1.5f
#define y_Max 1.7f
我需要能够像这样初始化矩阵。在 C 中这样做的唯一可能方法是定义一个枚举,或者使用 #define,因为这样的初始化不能与常量一起使用。
问题是,我需要能够在整个代码中更改值x_Max 和y_Max,所以#define 在这种情况下不起作用。我怎样才能做到这一点?
【问题讨论】:
-
将参数传递给
#defines有什么问题? -
例如,一旦我定义了 x_0,我就无法更改它的值。对不对?
-
答案有帮助吗?或者你还有什么困惑的地方吗?您还需要在运行时更改 x_0 吗?
标签: c enums initialization c-preprocessor