"lvalue required as left operand of assignment"
"lvalue required as left operand of assignment"
查看了涉及相同错误的其他问题,但不太明白为什么会出现错误。
我正在尝试将方程分配给同名函数中的变量?
我是新手,所以如果有人能向我解释为什么会发生这种情况,那就太棒了。
倒数第五行是我收到错误的地方
#define DAYS_PER_WEEK 7
#define THURSDAY 0
#define FRIDAY 1
#define SATURDAY 2
#define SUNDAY 3
#define MONDAY 4
#define TUESDAY 5
#define WEDNESDAY 6
#define TRUE 1
#define FALSE 0
#define DAYS_PER_WEEK 7
int dayOfWeek (int doomsday, int leapYear, int month, int day);
int main (int argc, char *argv[]) {
dayOfWeek(SUNDAY, FALSE, 1, 10);
return EXIT_SUCCESS;
}
int dayOfWeek (int doomsday, int leapYear, int month, int day) {
if (month == 1) {
int doomsDate = 4;
dayOfWeek = (day + doomsDate)/DAYS_PER_WEEK);
printf ("The day of the week is: =%d\n",dayOfWeek);
}
return dayOfWeek;
}
所以在@Gopi解释了为什么我把函数改成这个之后
int dayOfWeek (int doomsday, int leapYear, int month, int day) {
if (month == 1) {
int doomsDate = 4;
int dayNum = (day + doomsDate)/DAYS_PER_WEEK;
printf ("The day of the week is: =%d\n",dayNum);
}
return dayOfWeek;
}
我需要满足以下断言:
assert (dayOfWeek (SUNDAY, FALSE, 1, 10) == SATURDAY);
我该怎么做...
dayOfWeek = (day + doomsDate)/DAYS_PER_WEEK);
dayOfWeek
是一个函数名,所以它不能是一个可赋值的左值。
I'm trying to assign an equation to a variable within a function of
the same name?
函数 dayOfWeek()
中没有变量 dayOfWeek
。
编辑前:
请不要假设在函数中会自动定义任何变量。它必须在参数(列表)或函数体中定义。
此外,函数 名称不是 变量。这不是 lvalue.
P.S - 不考虑全局变量
编辑后:
I want it to return dayOfWeek and I want it to be the same as dayNum... how could I do this?
在编辑的代码中,return dayOfWeek;
无效,因为没有名为 dayOfWeek;
的变量。你需要(也必须)写
return dayNum;
查看了涉及相同错误的其他问题,但不太明白为什么会出现错误。
我正在尝试将方程分配给同名函数中的变量?
我是新手,所以如果有人能向我解释为什么会发生这种情况,那就太棒了。
倒数第五行是我收到错误的地方
#define DAYS_PER_WEEK 7
#define THURSDAY 0
#define FRIDAY 1
#define SATURDAY 2
#define SUNDAY 3
#define MONDAY 4
#define TUESDAY 5
#define WEDNESDAY 6
#define TRUE 1
#define FALSE 0
#define DAYS_PER_WEEK 7
int dayOfWeek (int doomsday, int leapYear, int month, int day);
int main (int argc, char *argv[]) {
dayOfWeek(SUNDAY, FALSE, 1, 10);
return EXIT_SUCCESS;
}
int dayOfWeek (int doomsday, int leapYear, int month, int day) {
if (month == 1) {
int doomsDate = 4;
dayOfWeek = (day + doomsDate)/DAYS_PER_WEEK);
printf ("The day of the week is: =%d\n",dayOfWeek);
}
return dayOfWeek;
}
所以在@Gopi解释了为什么我把函数改成这个之后
int dayOfWeek (int doomsday, int leapYear, int month, int day) {
if (month == 1) {
int doomsDate = 4;
int dayNum = (day + doomsDate)/DAYS_PER_WEEK;
printf ("The day of the week is: =%d\n",dayNum);
}
return dayOfWeek;
}
我需要满足以下断言:
assert (dayOfWeek (SUNDAY, FALSE, 1, 10) == SATURDAY);
我该怎么做...
dayOfWeek = (day + doomsDate)/DAYS_PER_WEEK);
dayOfWeek
是一个函数名,所以它不能是一个可赋值的左值。
I'm trying to assign an equation to a variable within a function of the same name?
函数 dayOfWeek()
中没有变量 dayOfWeek
。
编辑前:
请不要假设在函数中会自动定义任何变量。它必须在参数(列表)或函数体中定义。
此外,函数 名称不是 变量。这不是 lvalue.
P.S - 不考虑全局变量
编辑后:
I want it to return dayOfWeek and I want it to be the same as dayNum... how could I do this?
在编辑的代码中,return dayOfWeek;
无效,因为没有名为 dayOfWeek;
的变量。你需要(也必须)写
return dayNum;