这是 c 和 c++ 中的有效操作吗?
daysgoneby += months[monthindex].day;
基本上将查找表中的一个字段添加到一个 int (在这种情况下,它是一个 int 到一个 int,所以它看起来是有效的)。
其中 daysgoneby 是 int 类型,months[monthindex].day
参考下表。
如果不是为什么?以及如何规避这一点以使用表中的 int 类型。
struct Monthpairs // Fields for month & day lookup
{
const char* mon; // Months
int day; // Days
};
Monthpairs months[] = // Lookup table for months & day
{
{"Jan", 31},
{"Feb", 28},
{"Mar", 31},
{"Apr", 30},
{"May", 31},
{"Jun", 30},
{"Jul", 31},
{"Aug", 31},
{"Sep", 30},
{"Oct", 31},
{"Nov", 30},
{"Dec", 31},
};