C语言宏接口define的高级使用

c语言提供了一种替换操作,在编译之前的预编译执行,define

一、常规数字替换
用法:
#define 替代的名字 被替代的内容
示例:

#define one 1

int a = 0;

a = one;
printf("%d",a);

输出结果为1

二、带参数的替代
1、普通文本字符参数
#define (替代的名字) 被替代的内容

#define print(x) printf("%d",x)

a = 10;
print(a);

输出结果:10

2、字符串参数
当需要把一个宏的参数转换为字符串常量时,则使用字符串常量化运算符 #,多行可以用 \ 换行

#define message_to(name, id)
printf(#name " : " #id": Welcome!\n")

int main(void)
{
message_to(tom,num123);
return 0;
}

结果:tom:num123:Welcome!

3、标记粘贴运算符 ##
简单理解拼接字符串

#define  student_print(n,name)  \
    printf("student%d"#name " \n",student##n)

int student1 = 10;
student_print(1,tom) ;

结果: student10 tom
这里拼接了n和student

你可能感兴趣的:(C语言,c语言)