C语言连接运算符“##”有什么作用?
连接运算符“##”可以把两个独立的字符串连接成一个字符串。在C的宏中,经常要用到“##”运算符,请看下例:
#include<stdio.h>
#define SORT(X) sort_function # # X
void main(vOid);
void main(vOid)
{
char *array;
int elements,element_size;.
SORT(3) (array,elements,element_size);
}
在上例中,宏SORT利用“##”运算符把字符串sort_function和经参数x传递过来的字符串连接起来,这意味着语句
SORT(3)(array,elemnts,element_size);
将被预处理程序转换为语句
sort_function3(array,elements,element_size);
从宏SORT的用法中你可以看出,如果在运行时才能确定要调用哪个函数,你可以利用“##”运算符动态地构造要调用的函数的名称。
#include<stdio.h>
#define SORT(X) sort_function # # X
void main(vOid);
void main(vOid)
{
char *array;
int elements,element_size;.
SORT(3) (array,elements,element_size);
}
在上例中,宏SORT利用“##”运算符把字符串sort_function和经参数x传递过来的字符串连接起来,这意味着语句
SORT(3)(array,elemnts,element_size);
将被预处理程序转换为语句
sort_function3(array,elements,element_size);
从宏SORT的用法中你可以看出,如果在运行时才能确定要调用哪个函数,你可以利用“##”运算符动态地构造要调用的函数的名称。