同一变量的两个枚举定义
Two enum definitions of the same variable
我注意到 linux 内核中的一些代码如下:
在文件s3c-dma-pl330.h中有一个定义:
enum dma_ch {
...
};
在该文件的末尾有:#include <plat/dma.h>
在该文件 (dma.h) 中有:enum dma_ch;
没有写extern
,你能告诉我到底发生了什么吗?
dma.h中的dma_ch
和s3c-dma-pl330.h中的一样吗?为什么没有 extern
说明符?
enum dma_ch;
是枚举的前向声明。
当我们想要引用(可能)在其他翻译单元中找到的对象实例时,我们使用 extern
。 dma_ch
不是一个对象,它是一个类型。
我注意到 linux 内核中的一些代码如下:
在文件s3c-dma-pl330.h中有一个定义:
enum dma_ch {
...
};
在该文件的末尾有:#include <plat/dma.h>
在该文件 (dma.h) 中有:enum dma_ch;
没有写extern
,你能告诉我到底发生了什么吗?
dma.h中的dma_ch
和s3c-dma-pl330.h中的一样吗?为什么没有 extern
说明符?
enum dma_ch;
是枚举的前向声明。
当我们想要引用(可能)在其他翻译单元中找到的对象实例时,我们使用 extern
。 dma_ch
不是一个对象,它是一个类型。