sizeof(enum {dummyA})

unsigned long Function(void *p)
{
unsigned long value = 0;
unsigned long sizeOfEnum = sizeof(enum {dummyA});

    switch (sizeOfEnum)
    {
                case (1):
                {
                            *(unsigned char *)&value = *(unsigned char *)p;
                            break;
                }
                case (2):
                {
                            *(unsigned short *)&value = *(unsigned short *)p;
                            break;
                }
                case (4):
                {
                            *(unsigned long *)&value = *(unsigned long *)p;
                            break;
                }
                default:
                {
                            printf("Unexpected enum size");
                }
    }

    return value;
}

这个函数里面, sizeof(enum {dummyA})是求什么的size?为什么会有1/2/4三种结果。
dummyA又是什么意思呢

1个回答

估计这个代码是用来判断整个程序是使用什么编译器编译的,或者说编译器的编译/对齐策略是什么。
dummy字面意思是摆样子的东西。在这里意思就是这个enum本身没有什么意义,只是借助它探测编译器而用一下。

hellofresh
hellofresh 那么这个dummyA为什么没有定义却可以编译通过,编译的时候没有error,但是有warning。是否有相关的书籍说明?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
C++用sizeof取二维数组长度问题
2
p = (Node*)malloc(sizeof(Node));和 L = (CreateList)malloc(sizeof(Node));这个有什么区别?
0
ccsv5.5中c5535芯片sizeof返回值不对的问题
1
c语言字符串问题,关于strlen与sizeof
3
C++中float i=3.14;本应该是double类型,但是sizeof(i)测出来为什么是4字节而不是8字节
6
下面的代码中警告是什么原因,怎么解决
4
java中是没有sizeof函数,请问如果一定要用java完成这个问题 要怎么做呢
2
怎么在数组相关的模板函数中,判断数组长度?
1
小白想问一下这个strncpy哪里错了
2
求大佬解释一下这是怎么把重复的元素去掉的,小白没看懂?
1
MFC edit control控件循环显示问题
1
修改Linux内核,添加系统调用,输出CPU等信息到屏幕上,调整printk打印级别没有用处,使用tty结构体的ops中的write函数,在测试中,运行测试代码就会卡在界面啥也出不来,重启之后运行测试代码啥也不显示,代码如下
1
Process exited after7.379 seconds with return value 3221225477,如果程序正常输出但不出现这句话是不是代表着发生了什么异常
1
QT:海康千兆网相机,无数据回流
1
如何正确创建一个单链表(学生表)?
1
萌新求助单链表及遍历
1
linux 下socket编程,客户端连接服务器失败
1
linux c++ sds库 提示 undefined reference to `sdsempty()'
2
录入字符时出错,调试发现没有第一次字符录入,而是自动填充了'\n',这是为什么呢?
1
该程序运行时刀输入序号的时候输入不进去为什么?有大神知道吗