蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年6月6日 10:18


c++primer里面关于枚举的介绍在c下面不适用吗?

在c++primer中3.8节对枚举的介绍中,
作者说如果用枚举类型做函数的参数,在调用函数输入不是枚举类型中的值时,编译器会报错。
我在一个c程序中为了方便和安全的需要在一个函数中使用了枚举作为参数,但是经过测试,编译器并没有报错。为什么不适用呢 :em16:
[code]
#include <stdio.h>;
#include <stdlib.h>;
enum flag {left, right};
enum flag func(enum flag flag)
{
    return flag;
}
int main(int argc, char *argv[])
{
    int i;
    i=func(2);
    printf("i[%d]\n", i);
    system("PAUSE");       
    return 0;
}[/code]
上面的例子是在dev-c++里测试的。编译和运行正常。 :em16:

c++primer里面关于枚举的介绍在c下面不适用吗?

在C语言中,编译器一般把枚举类型等同于整型。其实这个问题主要还是看编译器是怎么处理的,有的编译器也可能对你上面的程序给出警告。你可以把它理解为“C语言对类型检查不是太严格”。

C++中,严格区分各种类型。枚举和整型之间不能自由转换,否则被视为一种错误,编译器在编译时会指出这种错误。

c++primer里面关于枚举的介绍在c下面不适用吗?

我也碰到这类的问题!郁闷

c++primer里面关于枚举的介绍在c下面不适用吗?

c++primer
又不是c primer



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com