#define 宏名 字符串
以一个宏名称来代表字符串,即当C语言程序中任何地方使用到宏名称时,则将以所代表的字符串来代替。宏定义的一般是常数或者表达式常数项,不是变量。
用宏定义有什么好处呢?
1.如C语言程序中多处 引用某一常数量,可以用宏来定义,便于程序修改,维护时修改宏名即可完成所有常数量的修改。
例:- #define CLOCK_BASE 1 //程序编译时会有把程序中所有用CLOCK_BASE 表示的地方,替换成常数 1
- #define CLOCK_40MS (65535-40000*CLOCK_BASE) // 表达式
- #define LED_ON ( ) RB1=1
- #define LED_OFF ( ) RB1=0
复制代码
条件编译
#if 表达式
#else
#endif
例1:
- #if 0 //0永远不成立,编译#else 后面的代码
- P1 = P1 | 0XFE ;
- keyvalue = P1 & 0XFE ;
- #else
- P1 = P1 | 0X7E ;
- keyvalue = P1 & 0X7E ;
- #endif
复制代码 typedef 重定义类型名
- typedef unsigned int u16 ;
- typedef unsigned char u8 ;
- void typedef Demo1 (void)
- {
- Bool j ;
- j=0 ;
- }
复制代码
#ifndef 宏名
- # ifndef PWM //如果PWM没有被定义过,则编译下面的代码
- #define PWM
- #define SUCCESS 0
- #define FAILURE 1
- #endif
复制代码
有人说 : 程序=数据结构+算法,C语言程序学到这里还没有正真的开始,一个用C语言编写的单片机成品,打开电源时MCU执行的第一个程序是从main()这个函数开始的,在程序中重复执行循环,可以让MCU不断的轮询外部状态,以进行实时处理。C语言程序往往在编写程序前要先指定头文件,
#include 文件名.h,因为头文件里面定义了很多单片机的公共变量及函数,必须声明成外部的(extern),以利其他模块和函数使用。下节从点亮一颗LED灯开始,说明单片机程序是如何运行起来的。
|