【C语言】预处理详解

他们想要逃避工作的压迫,却又被功绩社会深植的价值观绑架。

预定义符号 

1. C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。

1 __FILE__ //进⾏编译的源⽂件
2 __LINE__ //⽂件当前的⾏号
3 __DATE__ //⽂件被编译的⽇期
4 __TIME__ //⽂件被编译的时间
5 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义
#include <stdio.h>
int main()
{
	printf("%s\n", __FILE__);
	printf("%d\n", __LINE__);
	printf("%s\n", __DATE__);
	printf("%s\n", __TIME__);
	return 0;
}

#define定义常量

1. #define定义常量时,会在预处理阶段进行替换

2. #define定义常量时,建议不要在末尾加;

#define MAX 1000
#define reg register //为 register这个关键字,创建⼀个简短的名字
#define MAX 1000;

if(condition)
    max = MAX;//报错,两个分号代表有两行代码,需要加上大括号。
else
    max = 0;

#define定义宏

1. #define机制包括了⼀个规定,允许把参数替换到文本中,这种实现通常称为定义宏

2. 宏的功能与函数有些相似,可以代替一些简单的函数功能。

3. 宏的参数不进行任何计算,直接带入进行替换。

4. 写宏时,不要吝啬括号,建议给宏一个整体的括号

5. 所以用于对数值表达式进行求值的宏定义都应该用这种方式加上括号,避免在使用宏时由于参数中的操作符或邻近操作符之间不可预料的相互作用。

#define name(parament-list) stuff
//parament-list为一个参数列表
#define DOUBLE(x) x*x
#include <stdio.h>
int main()
{
	int n = 5;
	int result = DOUBLE(n);
	printf("%d", result);//25
	return 0;
}
#define DOUBLE(x) x*x
#include <stdio.h>
int main()
{
	int n = 5;
	int result = DOUBLE(n+1);
	printf("%d", result);//11
	return 0;
}

#define DOUBLE(x) (x)*(x)
#include <stdio.h>
int main()
{
	int n = 5;
	int result = DOUBLE(n+1);
	printf("%d", result);//36
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值