C++ 在'之前应为不合格id\0';

C++ 在'之前应为不合格id\0';,c++,compiler-errors,typedef,C++,Compiler Errors,Typedef,我试着做了以下事情,但我发现了错误 typedef '\0' DEFAULT_VALUE; 错误:在“\0”之前应为未确认的id` 错误:在_null之前应为未经验证的id 我做错了什么?类型定义的一般语法是: typedef existing_type new_type_name ; 由于'\0'和NULL不存在类型,因此会出现错误 由于需要定义常量,因此可以使用常量作为: const int DEFAULT_VALUE = '\0'; typedef的一般语法是: typedef

我试着做了以下事情,但我发现了错误

typedef '\0' DEFAULT_VALUE;   
错误:在“\0”之前应为未确认的id`

错误:在_null之前应为未经验证的id


我做错了什么?

类型定义的一般语法是:

typedef existing_type new_type_name ;
由于
'\0'
NULL
不存在类型,因此会出现错误

由于需要定义常量,因此可以使用
常量作为:

const int DEFAULT_VALUE = '\0';

typedef
的一般语法是:

typedef existing_type new_type_name ;
由于
'\0'
NULL
不存在类型,因此会出现错误

由于需要定义常量,因此可以使用
常量作为:

const int DEFAULT_VALUE = '\0';

关键字
typedef
定义了现有类型的同义词。
\0
NULL
都不是类型。可能你想要的东西如下:

#define DEFAULT_VALUE NULL

关键字
typedef
定义了现有类型的同义词。
\0
NULL
都不是类型。可能你想要的东西如下:

#define DEFAULT_VALUE NULL

因此,我可以在C++中指定一个指针,作为…int *PTR=Debug Tr.Valuy。这样,我就可以将一个指针指定为…int *pTr= Debug Tr.Valuy。预处理器宏只替换源文本,而C++提供了无法用宏实现的类型安全。@我没有注意到这个问题是用C++来标记的。从OP的问题我猜他/他正在尝试做一些事情,比如“代码>”定义< /C> >。因为问题是标记C++,所以你应该避免<代码>定义< /C> >,使用<代码> const int < /Cuth>构造。预处理器宏只替换源文本,而C++提供了无法用宏实现的类型安全。@我没有注意到这个问题是用C++来标记的。从OP的问题中,我猜他/她正试图做一些类似于定义的事情。