【发布时间】:2012-07-23 19:40:11
【问题描述】:
可能重复:
Should I use #define, enum or const?
Advantage and disadvantages of #defines vs. constants?
枚举如何比#define 和 const 更有用。 内存和代码可见性的观点和可读性的观点。 我可以将(类型转换)枚举转换为 int 数组吗,如果我已经取了整数中的所有值。
例子:
class MapPlt_clContainer {
public:
enum tagVectorType {
enVTAll = 0,
enVTPolygon,
enVTLines
}
};
tVoid MapPlt_clRender::vDrawLineClass( MapPlt_clContainer::tagVectorType* )
调用函数枚举时传递
vDrawLineClass( ClassArray_Group ); //Working
同时调用数组基地址传递
int test[3] =
{
5,
6,
7,
};
vDrawLineClass( test); //Not Working
错误!!
它应该自动类型转换吗?或者它取决于编译器。就我而言,它给出了错误。
【问题讨论】:
-
FWIW,stackoverflow.com/questions/112433/… 被标记为 C++,而这个问题被标记为 C,而
const的工作方式在两者之间存在明显差异。 -
另外:c 中没有类,并且在结构(或联合)定义中不允许使用
public:标签。::在 C 中总是语法错误,&(ClassArray_Group[5])中的括号是不需要的,这意味着面试官不确定他的语法。 -
对不起,我编写了非常混乱的代码来演示这个场景。但我想知道如果我将数组基地址传递给期望枚举地址的函数,那么它会起作用吗?