VC语法 enum { IDD = IDD_ABOUTBOX };分析
2008-10-31 15:57
239 查看
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;
当然是通过不了编译的.
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;
当然是通过不了编译的.
相关文章推荐
- 关于VC中enum { IDD = IDD_ABOUTBOX }用法一点看法_lizhon...(转载)
- VC++自动生成的对话框类头文件中的enum {IDD= xxxx}解释
- LDS 链接脚本语法分析
- ELK日志分析Elasticsearch模块——语法基础CRUD
- PostgreSQL 的 语法分析的理解(五)
- MySQL union 语法代码示例分析
- MySQL union 语法代码示例分析
- Mysql Join语法解析与性能分析
- 关于Basic程序解释器及编译原理的简单化(1)---Basic器的语法分析及主要代码
- (编译原理)TINY扩充语言的语法分析
- VC# 2005 Screen Saver Starter kit的主窗体分析
- 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
- Tiny语言编译器开发之语法分析
- VC ADO “ParameterDirectionEnum”:“enum” 类型等 重定义问题 解决方案
- Mysql Join语法解析与性能分析
- java内存泄漏原因(从内存角度分析,而不是从语法角度)
- 简单语法分析-数学表达式
- 蛙蛙推荐:蛙蛙教你发明一种新语言之一--词法分析和语法分析
- VC用EnumChildWindows枚举所有复选框,并勾选(取消勾选)
- LL(1)语法分析程序