struct

1、sizeof(struct)

 https://www.cnblogs.com/wllwqdeai/p/10682254.html

2、struct{...; static const int a=1; ...}

https://blog.csdn.net/luckydan61/article/details/5576367

C中struct只是类型声明,没有内存空间的分配,而static变量是需要分配内存的,所以在结构体内包含static变量会出错;

C++编译器将结构体视为一种特殊的class,所以不会有问题。众所周知,类体内可以包含static变量;但是class的定义不会引起内存分配,只有当定义一个class的对象时,系统才会分配存储区。这样说的话,不分配内存空间的class中包含需要分配内存空间的static变量不就变的很奇怪了吗?

原文地址:https://www.cnblogs.com/wllwqdeai/p/10682359.html