|
#define 宏名 字符串
以一個(gè)宏名稱來代表字符串,即當(dāng)C語言程序中任何地方使用到宏名稱時(shí),則將以所代表的字符串來代替。宏定義的一般是常數(shù)或者表達(dá)式常數(shù)項(xiàng),不是變量。
用宏定義有什么好處呢?
1.如C語言程序中多處 引用某一常數(shù)量,可以用宏來定義,便于程序修改,維護(hù)時(shí)修改宏名即可完成所有常數(shù)量的修改。
例:- #define CLOCK_BASE 1 //程序編譯時(shí)會(huì)有把程序中所有用CLOCK_BASE 表示的地方,替換成常數(shù) 1
- #define CLOCK_40MS (65535-40000*CLOCK_BASE) // 表達(dá)式
- #define LED_ON ( ) RB1=1
- #define LED_OFF ( ) RB1=0
復(fù)制代碼
條件編譯
#if 表達(dá)式
#else
#endif
例1:
- #if 0 //0永遠(yuǎn)不成立,編譯#else 后面的代碼
- P1 = P1 | 0XFE ;
- keyvalue = P1 & 0XFE ;
- #else
- P1 = P1 | 0X7E ;
- keyvalue = P1 & 0X7E ;
- #endif
復(fù)制代碼 typedef 重定義類型名
- typedef unsigned int u16 ;
- typedef unsigned char u8 ;
- void typedef Demo1 (void)
- {
- Bool j ;
- j=0 ;
- }
復(fù)制代碼
#ifndef 宏名
- # ifndef PWM //如果PWM沒有被定義過,則編譯下面的代碼
- #define PWM
- #define SUCCESS 0
- #define FAILURE 1
- #endif
復(fù)制代碼
有人說 : 程序=數(shù)據(jù)結(jié)構(gòu)+算法,C語言程序?qū)W到這里還沒有正真的開始,一個(gè)用C語言編寫的單片機(jī)成品,打開電源時(shí)MCU執(zhí)行的第一個(gè)程序是從main()這個(gè)函數(shù)開始的,在程序中重復(fù)執(zhí)行循環(huán),可以讓MCU不斷的輪詢外部狀態(tài),以進(jìn)行實(shí)時(shí)處理。C語言程序往往在編寫程序前要先指定頭文件,
#include 文件名.h,因?yàn)轭^文件里面定義了很多單片機(jī)的公共變量及函數(shù),必須聲明成外部的(extern),以利其他模塊和函數(shù)使用。下節(jié)從點(diǎn)亮一顆LED燈開始,說明單片機(jī)程序是如何運(yùn)行起來的。
|
評(píng)分
-
查看全部評(píng)分
|