我必须存储相同类型的倍数值。
我选择了数组。
但是这些数组值将用于程序的多个部分。
所以我决定使用Macro访问数组值。
arr[VALUE_1]
此处VALUE_1
是宏
宏的另一种解决方法是枚举
enums{
VALUE_1,
VALUE_2
}
我想知道枚举会占用一些内存。
哪种方法更适合高效编程?
答案 0 :(得分:3)
我想知道枚举会占用一些内存。
调查员不会在运行时存在。它们是不对象,而是常量。他们的名字是prvalues。
它们在编译时被它们的值替换。所以无论如何都没有性能差异。
并遵循一般准则:首选enum
到宏。
答案 1 :(得分:1)
在C ++中,枚举在运行时几乎与常量相同,因此在程序运行时与宏没有区别。但是,从源角度来看,编译器将枚举理解为捆绑在单个类型中的一组相关值。这对于检查代码的类型非常有用。此外,如果你还没有这样做,它将迫使你正确处理你的常量,以获得更好的整体代码库。
只需使用枚举。