1

这是 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},
};
4

1 回答 1

1

您的陈述非常好,最后day您的查找表中的字段int也是如此。

关于您的问题的标题,虽然在您的配对中使用特定字段很好(只要类型对于运算符/函数是正确的),您不能添加到配对本身,因为它的类型与运营商期望。

于 2013-04-17T18:11:27.540 回答