我想为函数指针* creatingI()创建一个预处理器,但我不能这样做。有什么问题?
#define *creatingI() *CreatInt();
错误:
error C2007: #define syntax
答案 0 :(得分:0)
指令define
后面的名称必须是标识符,因此您需要编写类似函数的宏,其名称以{underscore,letter}开头,后跟{underscore,字母,数字}。
所以只需删除通配符*
:
#define creatingI() *CreatInt();
来自C99 6.10:
# define identifier replacement-list new-line
来自C99 6.4.2:
语法
<强>标识符强>
标识符非数字
标识符标识符 - 非数字
标识符数字
<强>标识符非数字强>:
非数字
通用字符名称
其他实现定义的字符
nondigit :
之一
_ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
数字:
0之一1 2 3 4 5 6 7 8 9
答案 1 :(得分:0)
#define指令中的宏名称必须是标识符,即必须以字母或_开头,其余字符为数字,字母或_。 它不能以*
开头