C++如何声明标识符,急~~~~ 5
resource.h中:#defineIDD_ABOUTBOX100#defineIDR_MAINFRAME128#defineIDR_PUZZLETYPE129#def...
resource.h中:
#define IDD_ABOUTBOX 100
#define IDR_MAINFRAME 128
#define IDR_PUZZLETYPE 129
#define IDD_QUESTION 135
错误在Question.h中:
public:
CQuestion(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CQuestion)
enum { IDD = IDD_QUESTION };
int m_nAnswer;
CString m_strQuestion;
e:\学习资料\c++\puzzlecard256\question.h(21) : error C2065: 'IDD_QUESTION' : undeclared identifier
e:\学习资料\c++\puzzlecard256\question.h(21) : error C2057: expected constant expression
希望有详细操作
何为包含资源头文件??
2楼,看看宏定义名有没有跟库定义重复什么意思 ,怎么看 展开
#define IDD_ABOUTBOX 100
#define IDR_MAINFRAME 128
#define IDR_PUZZLETYPE 129
#define IDD_QUESTION 135
错误在Question.h中:
public:
CQuestion(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CQuestion)
enum { IDD = IDD_QUESTION };
int m_nAnswer;
CString m_strQuestion;
e:\学习资料\c++\puzzlecard256\question.h(21) : error C2065: 'IDD_QUESTION' : undeclared identifier
e:\学习资料\c++\puzzlecard256\question.h(21) : error C2057: expected constant expression
希望有详细操作
何为包含资源头文件??
2楼,看看宏定义名有没有跟库定义重复什么意思 ,怎么看 展开
6个回答
展开全部
但愿小弟能帮你三点,得到大哥认可:
1.标识符申明
2.宏定义名跟库定义重复的意思
3.包含资源头文件
【1】标识符申明:
1.预处理使用的宏定义define:
格式:#define 标识符 常量
举例:#define Max 8//该文件程序中,所有的Max=8
2.常量标识符定义const:
格式:const 变量类型 标识符=常量;
举例:const int Max=8;//该文件程序中,所有的整型变量Max=8
评价:与常量标识符定义相比,预处理不需申明变量类型,优先执行
3.标识符类型定义typedef:
格式:typedef 标识符 变量类型;
举例:typedef IDE int;
IDE a=5;
//该文件程序中,所有int都可用IDE代替:“IDE a=5;”等价于“int a=5;”
【2】宏定义名跟库定义重复的意思:
打个比方:
有人说,我想定义一个叫“int”的变量,使之等于5:
人理解为:“定义一个叫int的变量为整型变量,并赋值5”:int int=5;
结果发现:两个int字形都是粗体,要求不成功。
原因是:int是专用标识符,作用是定义他量,不能充当变量名;
当电脑见到它时,就知道要执行定义他量的命令。由此说来:
int int=5;程序理解为:“定义一个定义一个?为整型变量为整型变量,并给?赋值5”即:int int 空标识符=5;故不成功。
同理,宏定义名跟库定义重复的意思是:
某一个宏定义名也是某个库中的“专利名词”,它本身已有含义和功能。
并且开启该功能需使用该库对其声明,这就要用头文件。
【3】包含资源头文件:
资源头文件是特殊的、被“封装”(保密)了的C++文件。
用#include包含它就可以使用它的功能:
#include<stdio.h>后,就可以使用被定义的printf函数了。
如E:\Dev-Cpp\include中“stdio.h”文件中内容:
extern "C"{
......(不相关的内容我就省略了)
_CRTIMP int __cdecl printf (const char*, ...);
......(不相关的内容我就省略了)
}
上述文件,定义了printf的名称及使用功能和格式。所以,当你包含它就可以使用它的功能,因为它的功能是在资源头文件定义的。
你不包含它时,它如果不是“专利名词”就没有意义,可以当一般变量定义:
int printf=5;//该句合法:printf不是“专利名词”,且未被#include<stdio.h>定义。
1.标识符申明
2.宏定义名跟库定义重复的意思
3.包含资源头文件
【1】标识符申明:
1.预处理使用的宏定义define:
格式:#define 标识符 常量
举例:#define Max 8//该文件程序中,所有的Max=8
2.常量标识符定义const:
格式:const 变量类型 标识符=常量;
举例:const int Max=8;//该文件程序中,所有的整型变量Max=8
评价:与常量标识符定义相比,预处理不需申明变量类型,优先执行
3.标识符类型定义typedef:
格式:typedef 标识符 变量类型;
举例:typedef IDE int;
IDE a=5;
//该文件程序中,所有int都可用IDE代替:“IDE a=5;”等价于“int a=5;”
【2】宏定义名跟库定义重复的意思:
打个比方:
有人说,我想定义一个叫“int”的变量,使之等于5:
人理解为:“定义一个叫int的变量为整型变量,并赋值5”:int int=5;
结果发现:两个int字形都是粗体,要求不成功。
原因是:int是专用标识符,作用是定义他量,不能充当变量名;
当电脑见到它时,就知道要执行定义他量的命令。由此说来:
int int=5;程序理解为:“定义一个定义一个?为整型变量为整型变量,并给?赋值5”即:int int 空标识符=5;故不成功。
同理,宏定义名跟库定义重复的意思是:
某一个宏定义名也是某个库中的“专利名词”,它本身已有含义和功能。
并且开启该功能需使用该库对其声明,这就要用头文件。
【3】包含资源头文件:
资源头文件是特殊的、被“封装”(保密)了的C++文件。
用#include包含它就可以使用它的功能:
#include<stdio.h>后,就可以使用被定义的printf函数了。
如E:\Dev-Cpp\include中“stdio.h”文件中内容:
extern "C"{
......(不相关的内容我就省略了)
_CRTIMP int __cdecl printf (const char*, ...);
......(不相关的内容我就省略了)
}
上述文件,定义了printf的名称及使用功能和格式。所以,当你包含它就可以使用它的功能,因为它的功能是在资源头文件定义的。
你不包含它时,它如果不是“专利名词”就没有意义,可以当一般变量定义:
int printf=5;//该句合法:printf不是“专利名词”,且未被#include<stdio.h>定义。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该没问题的。。。你应该不至于没有包含资源头文件吧?关注。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询