是否在后续struct的声明中保留了内存空间,或者在创建该结构的对象时保留了内存空间?
struct student
{
int marks;
float average;
};
答案 0 :(得分:0)
通常应该在创建定义时使用。由于您可以在不定义结构的情况下声明结构的实例(可能在标题中使用extern),因此除非定义了实例,否则不会将空间用于实例。
但是,如果实际上没有使用它们,编译器可以选择将对象从程序中剥离出来。有时编译器可能过于热心并剥离根本没有引用的对象,但实际上执行重要的操作,例如某种注册。
答案 1 :(得分:0)
当您按照您的方式声明struct
时,没有为结构分配内存。但是,您可以声明struct
和立即定义该类型的变量,如下所示:
struct student
{
int marks;
float average;
} var_name; // Reserves the memory in the global/static space
您还可以使用new
在自动空间(局部变量)或动态空间中定义变量。