【C语言】宏

宏定义

  • #define<名字><值>
  • 没有结尾的分号
  • 名字必须是一个单词,值可以是任何东西
#define pi 3.1415926
//定义一个宏 pi是这个宏的名字 3.14159是这个宏的值
  • 如果一个宏的值中有其他宏的名字,也会被替换
  • 如果一个宏的值超过一行,最后一行之前的行末要加\
  • 宏的值后面出现的注释不会被当作宏的一部分
  • 没有值的宏#define _DEBUG
#define PI 3.14
#define PI2 2*PI
#define PRT printf("hello"); \
			printf("ok")

int main(){
	printf("%.2f\n",PI); //3.14
	printf("%.2f\n",PI2); //6.28
	PRT; //hello ok
	return 0;
}

预定义的宏

  • __LINE__
  • __FILE__
  • __DATE__
  • __TIME__
  • __STDC__
#include<stdio.h>

int main(){
	printf("%s:%d\n",__FILE__,__LINE__); //D:\LYJ\test.cpp:4
	printf("%s,%s\n",__DATE__,__TIME__); //Sep 17 2023,15:16:52
	return 0;
}

带参数的宏

  • 类似于函数的宏#define cube(x) ((x)*(x)*(x))可以带参数
#include<stdio.h>
#define cube(x) ((x)*(x)*(x))
//用((x)*(x)*(x))替换cube(x)
int main(){
	printf("%d",cube(2)); //8
	return 0;
}
  • 带参数宏的定义规则:一切都要括号,整个值要括号,参数出现的地方要括号
    #define RAD(X) ((X)*52)
  • 错误的的宏定义:
    #define RAD(x) (x*52) / #define RAD(x) (x)*52
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值