2016-02-29 131 views
-4

如何为“enum”数据类型分配内存,我发现枚举数据类型的总大小是4字节(linux),但有些人回答是没有内存分配,它像'宏'一样一个类型(int),所以请解释枚举枚举所有成员函数在访问时存储的数据将在那里存在4个字节。枚举数据类型内存分配

感谢

+0

你是错的。请详细说明你的问题。这个问题还不清楚。 – Olaf

+0

@Jeyaram:最高票数的答案是错误的。 – Olaf

回答

-1

内存,不得分配给枚举。 ,但是没能记住,存储器分配和处理时间

(预处理时间和编译时间)是宏 和枚举之间的主要区别。

例如, 同时做调试(运行时),我们将无法看到的 宏中的值,由于内存不分配宏,我们将无法访问 的存储位置。要知道宏的价值,我们必须查看它定义的文件 。

但是对于枚举,应该分配内存。这样我们就可以访问 内存并在调试时(运行时)看到enum的值。

因此,如果没有为枚举分配内存,那么我们如何能够在运行时知道 的值。并从那里获得并给予我们价值。

+0

“内存不应分配给枚举”“内存不分配给宏”咦?这是无稽之谈,你不能在空气中存储价值。您的程序使用的所有内容都必须存储在程序的内存中。也许你的意思是说枚举_constants_(和宏常量)没有在'.data'部分分配,而是在'.rodata'或'.text'部分分配?与根据其范围和存储时间分配的枚举_variables_不同。 – Lundin