新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機C語言基礎(chǔ)知識之一

單片機C語言基礎(chǔ)知識之一

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
一、宏定義:
1、不帶參數(shù):
#define 標(biāo)識符 常量表達(dá)式
#define是宏定義命令,宏名(標(biāo)識符)好習(xí)慣用大寫
#define NIL 0x80

2、帶參數(shù):
#define 宏名(參數(shù)表) 字符串
不僅要時行字任串替換還要進(jìn)行參數(shù)的替換,在宏定義時,宏名與帶參數(shù)的括弧之間不應(yīng)該加空格,否則將空格以后的字符串都作為替代字符串的一部分,這可是很容易出錯的。
如:#define SQ(a,b) a*b
使用:x=12;y=10;area=SQ(x,y);
結(jié)果:area=12*10=120

二、文件包含:
#include <文件名>或#include "文件名"
在C51中常用物是尖括弧形式

三、條件編譯:
一般源程序中的所有程序行都參加編譯,但有時希望對其中一部分內(nèi)容只在滿足一定條件下才進(jìn)行編譯,也就是對一部分內(nèi)容指定編譯的條件。
#if、#elif、 #else、#endif、#ifdef、#ifndef
選擇不同的編譯范圍,產(chǎn)生不同的代碼,提供通用性。
如對8051在6MHZ與12MHZ下有
#ifdef cpu==8051
#define FREQ 6
#else
#define FREQ 12
#endif
這樣下面的原程序不用做任何修改便可以使用于兩種時鐘頻率的單片機系統(tǒng)

四、其他:
1、#error:捕捉不可預(yù)料的編譯條件
#if (myv!=0&&myv!=1)
#error myv must be 1 or 0
#endif

2、#pragma:用于在程序中向編譯器傳送各種編譯控制命令
#pragma 編譯命令序列
例:想按如下命令編譯ex.c c51 ex.c debug cod large可用:
#pragma DB CD LA
#pragma disable //禁止中斷


關(guān)鍵詞: 單片機C語言基礎(chǔ)知

評論


技術(shù)專區(qū)

關(guān)閉