VC语法 enum { IDD = IDD_ABOUTBOX };分析


VC语法 enum { IDD = IDD_ABOUTBOX };分析

 

2008年10月31日 flyfish

 

利用MFC向导生成一个Dialog程序

#define IDD_ABOUTBOX 100

IDD_ABOUTBOX是对话框资源的ID

enum { IDD = IDD_XX_DIALOG };
enum { IDD = IDD_ABOUTBOX };


我将上述代码enum { IDD = IDD_ABOUTBOX };改成const static int IDD= IDD_ABOUTBOX;
可以通过编译并且运行正常,也没发现有什么异常.
又将enum { IDD = IDD_XX_DIALOG };改成const static int IDD = IDD_XX_DIALOG;也没发现有什么异常.
但不知道为什么这样写?

说下enum;
enum week{Sunday,Monday,Tuesday,Wednesday}

枚举变量中的枚举元素是按照常量来处理的,不能普通的赋值,可以在声明的时候进行赋值如
enum week{Sunday=1,Monday,Tuesday,Wednesday}
下一个元素会自动加一操作

#include <iostream>
using namespace std;
int main()
{
 enum week{Sunday=1,Monday,Tuesday,Wednesday};
 
 week my=Monday;
 cout<<my;
return 0;
}

打印出2

#include <iostream>
using namespace std;
int main()
{
 enum week{Sunday=1,Monday,Tuesday,Wednesday};
 enum year{Sunday};
 week my=Monday;
 cout<<my;
}

这样编写是无法通过编译的,提示'Sunday' : redefinition; previous definition was 'enumerator' Sunday 已经定义了.

为什么没有通过编译?
这就是枚举的作用域的问题,就好像在同一个作用域定义了相同的变量.
int a;
int a;
当然是通过不了编译的.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西笑生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值