代码:
#define e 2.71828183;
double p ( int x )
{
return 1 / ( 1 + pow ( e, -1.0 * x ) );
}
我明白了:
math.cpp: In function ‘double p(int)’:
math.cpp:11: error: expected ‘)’ before ‘;’ token
math.cpp:11: error: expected ‘)’ before ‘;’ token
math.cpp:11: error: expected primary-expression before ‘,’ token
math.cpp:11: error: expected ‘;’ before ‘)’ token
答案 0 :(得分:12)
宏替换结束时有一个;
:
#define e 2.71828183;
在预处理时,return语句如下所示:
return 1 / ( 1 + pow ( 2.71828183;, -1.0 * x ) );
^^
会导致语法错误。
要解决此问题,请删除;
答案 1 :(得分:3)
宏不应该有一个分号。
答案 2 :(得分:3)
正如您提出的关于C ++的问题:
在这里你可以看到宏观替代的问题。相反,使用常量:
double const e = 2.71828183;