2024-01-05 C语言定义的函数名里面插入宏定义,对函数名进行封装,可以通过宏定义批量修改整个文件的函数名里面的内容

发布时间:2024年01月15日

一、C语言定义的函数名里面插入宏定义,对函数名进行封装,可以通过宏定义批量修改整个文件的函数名里面的内容。使用下面的代码对函数进行封装,这样移植的时候可以根据包名和类名进行批量修改,不用一个函数一个函数的修改。。

#define PACKAGE_NAME com_xxx_xxx
#define CLASS_NAME   xxxx
#define FUNCTION_STYLE_INNER(packagename, classname ,functionanme) Java_##packagename##_##classname##_##functionanme
#define FUNCTION_STYLE(packagename, classname ,functionanme)  FUNCTION_STYLE_INNER(packagename, classname ,functionanme)
#define JNI_FUNCTION(functionanme) FUNCTION_STYLE(PACKAGE_NAME,CLASS_NAME,functionanme)

二、需要注意的知识点:

????????在C语言中,## 运算符在宏定义中用于连接两个令牌。然而,当使用宏参数与 ## 运算符一起使用时,并且这些参数本身是宏时,直接使用 ## 运算符将不会导致参数宏的展开。这是因为宏的展开顺序规则导致 ## 阻止了参数宏先于连接操作的展开。

为了解决这个问题,通常需要使用两层宏:一层用于参数宏的展开,另一层用于连接操作。

文章来源:https://blog.csdn.net/qq_37858386/article/details/135608148
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。