附表1-2
c51編譯器的擴充套件關鍵字
關鍵字用 途
說 明auto
儲存種類說明
用以說明區域性變數,預設值為此
break
程式語句
退出最內層迴圈
case
程式語句
switch
語句中的選擇項
char
資料型別說明
單位元組整型數或字元型資料
const
儲存型別說明
在程式執行過程中不可更改的常量值
continue
程式語句
轉向下一次迴圈
default
程式語句
switch
語句中的失敗選擇項do
程式語句
構成do..while迴圈結構
double
資料型別說明
雙精度浮點數
else
程式語句
構成if..else選擇結構
enum
資料型別說明
列舉extern
儲存種類說明
在其他程式模組中說明了的全域性變數
flost
資料型別說明
單精度浮點數
for
程式語句
構成for迴圈結構
goto
程式語句
構成goto轉移結構if
程式語句
構成if..else選擇結構
int
資料型別說明
基本整型數
long
資料型別說明
長整型數
register
儲存種類說明
使用cpu內部寄存的變數
return
程式語句
函式返回
short
資料型別說明
短整型數
signed
資料型別說明
有符號數,二進位制資料的最高位為符號位
sizeof
運算子計算表示式或資料型別的位元組數
static
儲存種類說明
靜態變數
struct
資料型別說明
結構型別資料
swicth
程式語句
構成switch選擇結構
typedef
資料型別說明
重新進行資料型別定義
union
資料型別說明
聯合型別資料
unsigned
資料型別說明
無符號數資料
void
資料型別說明
無型別資料
volatile
資料型別說明
該變數在程式執行中可被隱含地改變
while
程式語句
構成while和do..while迴圈結構
附表1-1
ansic標準關鍵字
關鍵字用 途說 明
bit
位標量宣告
宣告乙個位標量或位型別的函式
sbit
位標量宣告
宣告乙個可位定址變數
sfr
特殊功能暫存器宣告
宣告乙個特殊功能暫存器
sfr16
特殊功能暫存器宣告
宣告乙個16位的特殊功能暫存器
data
儲存器型別說明
直接定址的內部資料儲存器
bdata
儲存器型別說明
可位定址的內部資料儲存器
idata
儲存器型別說明
間接定址的內部資料儲存器
pdata
儲存器型別說明
分頁定址的外部資料儲存器
xdata
儲存器型別說明
外部資料儲存器
code
儲存器型別說明
程式儲存器
interrupt
中斷函式說明
定義乙個中斷函式
reentrant
再入函式說明
定義乙個再入函式
using
暫存器組定義
定義晶元的工作暫存器
附錄二 at89c51特殊功能暫存器列表(適用於同一架構的晶元)
帶*號的特殊功能暫存器都是可以位定址的暫存器
符 號地 址
注 釋*acc
e0h累加器*b
f0h
乘法暫存器
*psw
d0h程式狀態字sp
81h
堆疊指標
dpl
82h
資料儲存器指標低8位
dph
83h
資料儲存器指標高8位
*ie
a8h
中斷允許控制器
*ip
d8h
中斷優先控制器
*p0
80h
埠0*p1
90h埠1
*p2
a0h
埠2*p3
b0h埠3
pcon
87h電源控制及波特率選擇
*scon
98h序列口控制器
sbuf
99h序列資料緩衝器
*tcon
88h定時器控制
tmod
89h定時器方式選擇
tl0
8ah
定時器0低8位
tl1
8bh
定時器1低8位
th0
8ch
定時器0低8位
th1
8dh
定時器1高8位
附錄三 運算子優先順序和結合性
級 別類 別
名 稱運算子
結合性1
強制轉換、陣列、
結構、聯合
強制型別轉換
( )
右結合下標
[ ]
訪問結構或聯合成員
->或.2
邏 輯邏輯非!
左結合字 位按位取反~
增 量加一++
減 量減一--
指 針取位址&
取內容*
算 術單目減-
長度計算
長度計算
sizeof 3
算 術乘*
右結合除/
取模%
4 算術和指標運算加+
減- 5
字 位左移
<< 右移
>> 6
關係大於等於
>= 大於
>
小於等於
<= 小於
< 7
恆等於==
不等於!= 8
字 位按位與& 9
按位異或^
10 按位或| 11
邏 輯邏輯與&&
左結合12
邏輯或|| 13
條 件條件運算?:
14 賦 值賦值=
復合賦值
op= 15
逗 號逗號運算,
右結合
C51編譯器的擴充套件C語言關鍵字
bit 位標量宣告宣告乙個位標量或位型別的函式 sbit 位標量宣告宣告乙個可位定址變數 sfr 特殊功能暫存器宣告宣告乙個特殊功能暫存器 sfr16 特殊功能暫存器宣告宣告乙個16位的特殊功能暫存器 data 儲存器型別說明直接定址的內部資料儲存器 idata 儲存器型別說明間接定址的內部資料儲存...
用volatile關鍵字防止變數被編譯器優化
用volatile關鍵字防止變數被編譯器優化 2010 02 04 11 18 為了避免這種情況,我們使用volatile關鍵字來防止程式被編譯器優化。具體的使用方法,我們用下面的程式來說明 extern volatile int event flag 這樣宣告event flag全域性變數的話,就...
C 學習(9) 配置編譯器 編譯器擴充套件
亞歷克斯於2018年9月19日 最後由alex於2018年9月26日修改 c 標準定義了程式在特定情況下應如何表現的規則。在大多數情況下,編譯器將遵循這些規則。但是,許多編譯器實現了對語言的更改,通常是為了增強與其他語言版本 例如c99 的相容性,或者出於歷史原因。這些特定於編譯器的行為稱為編譯器擴...