【C语言】宏定义(初版)

本文介绍了宏定义在C语言中的概念,包括宏作为命令集合的预处理器指令,宏定义变量、运算符处理、函数和预定符号的使用,以及如何取消宏定义。通过实例展示了宏替换在程序中的工作原理和注意事项。
摘要由CSDN通过智能技术生成

什么是宏定义:

宏可以看作为一些命令的集合。它是一种预处理器指令,在预编译阶段将宏名替换为后面的替换体。

#define name stuff
//      姓名  内容

宏定义的使用:

宏定义变量大小

#define X 777
int main()
{
    printf("%d", X);//777
}

宏定义简写

#define REG register//为register这个关键字起一个简单的别名

宏定义变量字符内容

#define YU youcanseeme
int main()
{
    printf("%d", YU);//youcanseeme
}

宏定义运算

  注意:宏是把参数替换到文本中,要想满足所需还要考虑运算法则,记得在必要的地方多加括号

 

//方法一:两个运算式相乘(X可以是数,也可以是运算式)
#define SQ(x) (x)*(x)
//方法二:(r只能是一个单独的数)
#define SA (r) (r*r)

  注意:

#define SQ(x) x * x
int main()
{
    printf("%d",SQ(6+1));//注意:这个时候答案是不对的
    //此时:6+1*6+1按照运算法则来说为:13
    //宏是把参数替换到文本中,也就是宏直接吧6+1替换掉了x直接带入了后面的表达式当中了!
}
/
#define SQ(x) (x)*(x)//x加括号保证完整性
#define DOUBLE(x) (x) + (x) 
int a = 5; 
printf("%d\n" ,10 * DOUBLE(a))//此时的答案并非100,而是55
//宏是把参数替换到文本中 此时的运算为:10*5+5=55!;
///
#define DOUBLE(X) ((X)+(X))

  宏语句:

#define PRINTF printf("hello world\n")

  宏定义函数:

#define ADD(a,b) ((a)+(b))

  宏定义预定符号的补充

__FILE__      //进行编译的源文件 
__LINE__     //文件当前的行号 
__DATE__    //文件被编译的日期 
__TIME__    //文件被编译的时间 
__STDC__    //如果编译器遵循ANSI C,其值为1,否则未定义·
#define PRINT printf("file:%s\n line:%d\n", __FILE__, __LINE__)
#include<stdio.h>
int main()
{
    PRINT;
}

取消宏定义

#undef name

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值