C语言预处理
# C预处理器
指令 | 描述 |
---|---|
#define | 定义宏 |
#include | 包含一个源代码文件 |
#undef | 取消已定义的宏 |
#ifedf | 如果宏已经定义,则返回真 |
#ifndef | 如果宏没有定义,则返回真 |
#if | 如果给定条件为真,则编译下面代码 |
#else | #if 的替代方案 |
#elif | 如果前面的#if 给定条件不为真,当前条件为真,则编译下面代码 |
#endif | 结束一个 # if... #else 条件编译快 |
#error | 当遇到标准错误时,输出错误消息 |
#pragma | 使用标准化方法,向编译器发布特殊的命令到编译器中 |
# 具体使用
#ifndef __clock_H_
#define __clock_H_ // 这个define是为了防止重复定义
#endif
1
2
3
2
3
这个预处理指令意思是
当这个文件为定义时 __colock_h_
才定义 __colock_h_
#ifndef uchar
#define uchar unsigned char
#endif
1
2
3
2
3
当 uchar
未被定义时, 才定义 uchar的内容
# 使用
#ifndef _temp_H_
#define _temp_H_
#include <reg51.h>
//这里重定义关键词便于后面定义
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
//定义温度显示的IO口
sbit DSPORT=P3^7;
//申明函数
void Delay1ms(uint );
uchar Ds18b20Init();
void Ds18b20WriteByte(uchar com);
uchar Ds18b20ReadByte();
void Ds18b20ChangTemp();
void Ds18b20ReadTempCom();
int Ds18b20ReadTemp();
#endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 预定义宏
宏 | 描述 |
---|---|
__DATE__ | |
__TIME__ | |
__FILE__ | |
__LINK__ | |
__STDC__ |
编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48