尝试在编译时定义变量时出现C ++ C2059错误

时间:2014-03-18 16:22:13

标签: c++

我有一个变量VER,我试图在编译时定义-DVER =使用g ++和/ DVER =使用MS VS 2010 Express。它在g ++中工作,但不能用MS VS编译。我在MSDN http://msdn.microsoft.com/en-us/library/t8xe60cf.aspx上找到了一个引用空符号的示例。我认为这不适用,因为如果没有使用/ D开关,我在foo.h文件中有一个默认值。

以下是我所拥有的一个例子

foo.h中

#ifndef VER
#define VER = 1.0
#endif

Foo.cpp中

#include "foo.h"
void write_ver(std::ofstream &output)
{  
float ver = VER; // C2059 Error here (Error: expected an expression)
output << ver << std::endl;
}

输出错误C2059:语法错误:'='。

如果有更好的方法来完成我正在做的事情,我也愿意接受建议。谢谢你的时间。

1 个答案:

答案 0 :(得分:5)

#define VER = 1.0

从上面的行中删除赋值运算符,你应该没问题。 Preprocesser定义的格式为:

#define NAME VALUE