高级宏定义

Posted helloworld2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级宏定义相关的知识,希望对你有一定的参考价值。

不带参数的宏定义

#define PI  3.14

#include<stdio.h>
#define R 6371
#define PI 3.14
#define V PI*R*R*4/3
int main()
	int r;
	float s;
	printf("输入圆的半径");
	scanf("%d",&r);
//	#undef PI;
	s=PI*r*r;
	printf("%.2f",s);
 

带参数的宏定义(机械的替换)

#include <stdio.h>

#define MAX(x, y) (((x) > (y)) ? (x) : (y))

int main(void)

	int x, y;

	scanf("%d%d", &x, &y);
	printf("较大的数%d", MAX(x, y));

	return 0;

加小括号防止意外事件的发生

#include <stdio.h>

#define SQUARE(x) (x * x)

int main(void)

	int x;

	scanf("%d", &x);

	printf("%d 的平方 %d\\n", x, SQUARE(x));
	printf("%d 的平方 %d\\n", x+1, SQUARE(x+1));

	return 0;

 技术图片

 

以上是关于高级宏定义的主要内容,如果未能解决你的问题,请参考以下文章

高级宏定义

Zabbix:高级应用之--宏网络发现测试实例

ObjC宏定义-预编译小功能

”更高级的宏“模板到底是怎么实例化的?

”更高级的宏“模板到底是怎么实例化的?

Confluence 6 自定义 Decorator 模板的宏和针对高级用户