这是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},
};
答案 0 :(得分:1)
您的陈述完全没问题,最终查找表中的day
字段也只是int
。
关于你的问题的标题,虽然在你的对中使用特定的字段很好(只要类型对于运算符/函数是正确的),你不能添加到对本身,因为它的类型不匹配运营商的期望。