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

一、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)

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

二、需要注意的知识点:

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

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

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

你可能感兴趣的:(C和C++语言,c语言,开发语言)