我如何使用define预处理器来定义函数指针?

时间:2017-03-12 23:26:55

标签: c c-preprocessor

我想为函数指针* creatingI()创建一个预处理器,但我不能这样做。有什么问题?

#define  *creatingI() *CreatInt();

错误:

error C2007: #define syntax

2 个答案:

答案 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指令中的宏名称必须是标识符,即必须以字母或_开头,其余字符为数字,字母或_。 它不能以*

开头