我在vs2010(win32控制台应用程序)中运行我的C代码。它被编译为C++应用程序。C预处理器和if-else条件语句
#include "stdafx.h"
#define YES 1;
#define NO 0;
// function to determine if an integer is even
int isEven(int number)
{
int answer;
if (number % 2 == 0)
answer = YES;
else
answer = NO;
return answer;
}
int main()
{
int isEven(int number);
if (isEven(17) == YES)
printf("yes ");
else
printf("no ");
if (isEven(20) == YES)
printf("yes\n");
else
printf("no\n");
return 0;
}
编译错误如下。
p300.cpp(18): error C2181: illegal else without matching if
p300.cpp(30): error C2143: syntax error : missing ')' before ';'
p300.cpp(30): error C2059: syntax error : ')'
p300.cpp(31): warning C4390: ';' : empty controlled statement found; is this the intent?
p300.cpp(33): error C2181: illegal else without matching if
p300.cpp(37): error C2143: syntax error : missing ')' before ';'
p300.cpp(37): error C2059: syntax error : ')'
p300.cpp(38): warning C4390: ';' : empty controlled statement found; is this the intent?
p300.cpp(40): error C2181: illegal else without matching if
然后,我还试图插入几个{ }
每个if-else
条件语句,但代码仍然编译时失败。我的代码有什么问题?
我想补充一点,你可以减少功能: INT ISEVEN(INT数){!返回(数& 1);} – Reinderien 2010-06-22 02:30:12
@Reinderien好了,如果不使用他承认不必要的YES和NO定义'回报(编号: 1)?NO:YES;'虽然 – 2010-06-22 02:33:15