C++定义结构体变量时用不用加struct关键词

时间:2025-04-03 15:37:10

在C++中,如果定义的结构体名和变量名不冲突,那么在定义结构体变量时,可以省略掉struct关键字。例如,下面这段代码可以正常编译运行:

struct Event {
    int start;
    int len;
    int end;
};

int main() {
    Event myEvent;
     = 100;
     = 60;
     = 160;
    return 0;
}

在这个例子中,定义了一个名为Event的结构体,并且在main函数中定义了一个名为myEvent的结构体变量。由于结构体名和变量名不冲突,因此可以直接使用Event和myEvent,而不需要在前面加上struct关键字。

但是需要注意的是,如果结构体名和变量名冲突了,那么就必须在定义结构体变量时加上struct关键字,否则会导致编译错误。例如,下面这段代码就会编译失败:

struct Event {
    int start;
    int len;
    int end;
};

int main() {
    Event Event;
     = 100;
     = 60;
     = 160;
    return 0;
}