error: macro names must be identifiers

在编写一个小的C++工程的时候

一直出现提示error: macro names must be identifiers

中文大意应该“宏名称必须是标识符”。

检查了代码都没有发现问题

后来发现在头文件的时候

#ifndef 1_h_
#define 1_h_

#endif

定义的宏用了数字开头

将头文件重命名为字母开头,error消失。

猜测是C/C++中变量名不能以数字开头

理由大概是 当分析"123"这个字符串的时候,如果变量名允许第一个字符为数字,分析器就不知道“123”该是数值常量还是变量名了。

你可能感兴趣的:(error)