条件编译
当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句
格式
#ifdef 标识符
程序段1
#else
程序段2
#endif
当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中else后面部分可以省略。
//当LCD_ICON_3A有定义就可以用,当LCD_ICON_4A有定义就可以用
//不然编译就自动忽略,提高可移植性
#ifdef LCD_ICON_3A
void DisplayDigital_1(u8 data)
{
u8 u8Temp = LED7Code[data];
LCD_ICON_3A = (u8Temp >> 0) & 0x01;
LCD_ICON_3B = (u8Temp >> 1) & 0x01;
LCD_ICON_3C = (u8Temp >> 2) & 0x01;
LCD_ICON_3D = (u8Temp >> 3) & 0x01;
LCD_ICON_3E = (u8Temp >> 4) & 0x01;
LCD_ICON_3F = (u8Temp >> 5) & 0x01;
LCD_ICON_3G = (u8Temp >> 6) & 0x01;
}
#endif
#ifdef LCD_ICON_4A
void DisplayDigital_4(u8 data)
{
u8 u8Temp = LED7Code[data];
LCD_ICON_4A = (u8Temp >> 0) & 0x01;
LCD_ICON_4B = (u8Temp >> 1) & 0x01;
LCD_ICON_4C = (u8Temp >> 2) & 0x01;
LCD_ICON_4D = (u8Temp >> 3) & 0x01;
LCD_ICON_4E = (u8Temp >> 4) & 0x01;
LCD_ICON_4F = (u8Temp >> 5) & 0x01;
LCD_ICON_4G = (u8Temp >> 6) & 0x01;
}
#endif
头文件中
作用:
防止头文件被多次包含,出现错误。
#ifndef <标识>
#define <标识>
#endif
其中 标识 可以自由命名,一般用头文件名命名。规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线
如下:
#ifndef _THERMOSTAT_H_
#define _THERMOSTAT_H_
#endif