C语言结构体里面可以有枚举吗?
是的,C语言结构体里可以包含枚举类型。枚举是将一组常量标签用有意义的方式组织在一起,方便代码的可读性和维护性。
结构体则是将多个不同类型的变量打包成一个整体,方便对数据的组织和处理。
在一些需要组织和处理多个枚举类型常量的情况下,将该枚举类型变量放在结构体中可以更好地进行管理。同时,枚举类型也可以作为结构体中的成员变量,通过结构体来进行管理和使用。
编写代码求C语言中枚举类型所占的内存长(用sizeof)?
枚举类型,在C语言中求sizeof,可以先定义一个枚举类型,然后对枚举类型中的元素,或者对类型求size,获取到内存长。
代码如下
#include
enum TEST
{
TEST0,
TEST1,
TEST2
};
int main()
{
printf("size of TEST is %d\n", sizeof(TEST));//用类型求大小。
printf("size of TEST is %d\n", sizeof(TEST1));//用元素求大小。
return 0;
}对于枚举类型,区分是否有负数值,系统会按照unsigned int或int来处理,而是否带符号,并不影响int的占用空间。所以任意枚举类型或枚举变量,占用的空间都是和平台实现时的int类型相同。对于主流的32位/64位平台,枚举类型均占4字节。即sizeof结果为4。

