C语言--简单宏定义计算

目录

一、什么是宏定义?

二、宏定义的格式

三、宏定义的类型

1. 无参宏定义

2. 带参宏定义(值得小白一看(●'◡'●))

 四、取消宏定义


一、什么是宏定义?

宏定义是一种替换操作,作用就是内容的替换

优点:

  1. 使用宏定义可以简化程序的书写。
  2. 提高程序的可读性。
  3. 提高程序的可移植性。
  4. 方便修改。

(注: 宏定义的替换是在预编译时进行。分享链接:http://t.csdnimg.cn/ZYeND

二、宏定义的格式

#define 标识符 字符串

三、宏定义的类型

常见的宏定义分为两种:无参宏定义带参宏定义

1. 无参宏定义

#define 标识符 字符串
#define PI  3.14  // 宏定义值
#define HELLO  "hello world"  // 宏定义字符串

后面的宏定义可以引用前面的宏定义

#include <stdio.h>

// 格式: #define 标识符 字符串
#define  PI  	3.14  			// 宏定义值
#define  R   	2
#define  SS  	PI*R*R			// 引用前面的宏定义
#define  HELLO  "hello world"   // 宏定义字符串

int main()
{
	int x = 0;
	x = SS;
	printf("%d  %s\n", x, HELLO);
	return 0;
}

2. 带参宏定义(值得小白一看(●'◡'●))

#include <stdio.h>

// 宏定义替换(注: 宏定义的替换是在预编译时进行)
#define add_1(x)  x+x
#define add_2(x)  (x+x)

// 使用宏定义进行替换计算
int main() {
	int a = 1, b = 2, c = 3;
	// add_1 计算
	int sum1 = add_1(a + b) * c;  	// 10
	int sum2 = add_1((a + b)) * c; 	// 12
	int sum3 = (add_1(a + b)) * c; 	// 18
	printf("sum1=%d  sum2=%d  sum3=%d\n", sum1, sum2, sum3);
	printf("\n"); // 换行
	// add_2 计算
	int sum4 = add_2(a + b) * c;  	// 18
	int sum5 = add_2((a + b)) * c; 	// 18
	int sum6 = (add_2(a + b)) * c; 	// 18
	printf("sum4=%d  sum5=%d  sum6=%d\n", sum4, sum5, sum6);
	
	return 0;
}

 

/****
  说明:
  add_1 计算: 
  1. sum1 = add_1(a + b) * c; 宏定义替换为 sum1 = a+b+a+b*k;
  代入值计算 sum1 = 1+2+1+2*3 = 10
  2. sum2 = add_1((a + b)) * c; 宏定义替换为 sum2 = (a+b)+(a+b)*k;
  代入值计算 sum2 = (1+2)+(1+2)*3 = 12
  3. sum3 = (add_1(a + b)) * c; 宏定义替换为 sum3 = (a+b+a+b)*k;
  代入值计算 sum3 = (1+2+1+2)*3 = 18
  
  add_2 计算: 
  对比add_1多了两个括号. sum4, sum5, sum6, 的值与sum3的计算结果一样。
 ****/

 四、取消宏定义

宏定义作用域就是从定义处开始到文件结束,当我们需要取消宏定义内容时:
#undef  宏名

#define PI  3.14  // 宏定义内容

// 代码内容。。。

#undef  PI  // 取消宏定义内容

一般来说,我们不需要取消宏定义,意义不大。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值