我从教科书中获得了以下代码示例,但仍未编译。
我在printf行上看到一个错误,提示Unary '++': 'months; does not define this operator or a conversion to a type acceptable to the predefined operator
。
我不知道该怎么做,因为这是我第一次尝试枚举,而这实际上是本书中的示例代码。怎么了?
// Fig. 10.18: fig10_18.c
// Using an enumeration
#include <stdio.h>
// enumeration constants represent months of the year
enum months {
JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
};
int main(void) {
// initialize array of pointers
const char *monthName[] = { "", "January", "February", "March",
"April", "May", "June", "July", "August", "September", "October",
"November", "December"
};
// loop through months
for (enum months month = JAN; month <= DEC; ++month) {
printf("%2d%11s\n", month, monthName[month]);
}
}
答案 0 :(得分:0)
您所做的工作在C语言中是正确的,但在C ++语言中是错误的。
您必须使用C编译器而不是C ++编译器。
您可以尝试使用-x c
命令行选项来告诉C ++编译器将源文件编译为C代码。