将一个简单的宏作为函数参数传递给函数调用中的参数太少了。

时间:2016-04-29 11:25:54

标签: c++ function compiler-errors

好的,所以这有点奇怪。我声明了以下功能:

void setMeshAttribute(int& ID, int attribute, int value);

当我打电话时:

setMeshAttribute(mesh_1_id, 0 ,0);

我没有遇到任何问题。但后来我定义了

#define XE_MAX_VERTICES 0

并尝试:

setMeshAttribute(mesh_1_id, XE_MAX_VERTICES, 0);

我在XE_MAX_VERTICES收到错误,告诉我函数调用中的参数太少'。现在我看到它的方式是,编译器将只用0替换XE_MAX_VERTICES,一切都应该没问题。显然它不是。

我在这里做错了什么?

如果已经有一个问题要解决这类问题,请链接到它,因为我自己找不到。

1 个答案:

答案 0 :(得分:0)

好的,所以这只是愚蠢的。而不是

#define XE_MAX_VERTICES 0

我有:

#define XE_MAX_VERTICES 0;

此外,我的问题中的代码不会有很多帮助,因为分号甚至不在那里。

感谢Joachim Pileborg告诉我我的例子必须是可验证的。