|
应广 Mini-c编程指南,pdf文档,Mini-c语法规则和举例7 F( Y- ` p0 q; \
尚诚科技杨帆,电话: m. Q' J- s- q0 O
,应广大陆技术支持,销售全系列应广空片,并承接小方案川发7 S& A! e2 X0 ^. R8 j
3)条件编译
6 j! ?1 {8 f B7 K, t- ~/ ^( l#if标识符
- j9 X, R8 Q9 w# }# bstatement8 C4 q+ Q7 H( Q+ d
#else
6 x/ [' l! [. ^2 C* w c& P! P! vStatement 2# H; H3 J( W) Q7 B' w* T" f! B1 r5 _
fendi5 ^3 T! a% H6 P# X
测试井if后面是否为真,为真则编译圩if和*else之间的程序,否则编译井else和# endif之间的稈序。其% L0 O5 }' S8 R
中标识符只能为
- y- I3 Y4 Y) a或者定义的标识符# g- p f0 M' {. }8 X, F" {# z
标识符( t$ e2 K2 E! o$ J
测试后面的标识符是否用, B C! A0 {5 |* L' t* Z7 h
定义过,如果定义过则编译和之间的程序,否则编译
' b/ O" |7 Z# e1 V u和之间程序。, S! h4 U: L+ F- j) g1 V
标识符& w2 D9 s: S: ?
测试' m$ H: |* m5 Y( Z, d% F0 f
后面的标识符是否用# I% v: _3 J, ~; p1 E6 N- F& r
定义过,如果没有定义过则编译' L% M: A2 o2 k7 e$ i
和之间的程序,否则! w* B8 Y2 K5 Y& e
编译和之间程序。
- E% E% t* X# V7 Y$ \标识符/ x/ j8 A$ i! ?! W9 w3 F T
标识符的名称包含连续的字母、数字或下划线,并遵守下列规则:
2 g. S$ m* _+ ]" T, p0 F0 a第一个字符不可为数字& m( A0 L' S* o5 A. x! ]/ e/ V; N
最长只能为27个字符6 u3 w1 Z; x( Z
●区分大小写2 _/ E a3 M. y
●不可以使用保留字
" s- M0 \& m& c, R# JMINI-C语言中的保留字/ [& V! o2 O: t) C( P! i
Break. case, const, continue, default
( R9 X3 `0 f; |* J. u' g% Fdo, else, extern," s3 p$ N; \) S7 m5 a$ u' s
d. word, dword, int return switch void, while
1 j& ~/ r! }( [/ B$ }! Gasm bit, interrup5 y, u! ?/ f# M
1.5数据类型:
8 }$ [' p s7 I' DMINI-C,支持的所有数据都是无符号数字,位长度有1位,8位,16位,24位,32位,分别如下表描 \2 E. ~3 k% g8 W2 ~
1.4数据类长度(bit)长度(byte)值域范围, X9 I( S/ i0 ]! C" e
型数据类型/ q# J' p8 X$ _5 N& Z0 s/ o* D
bit
: T% K/ {( {. w* U U9 o9 C0 ^byte
/ N' ` f; g( Q( c- h87 r5 N9 K% I; b. L6 I( Q" a* a
0~255/ C, @+ S; Y4 }! J) ]* T- _% }. _
int, ], Q0 T& x( @% b
8
6 N' x X! r* Q1 i1 c/ G0~65535
/ f/ X P7 Q% E1 s我的博客空间:
! p$ c% { O- @5 _欢迎光临;我的拍拍店/ v4 T4 M! h3 L
第页; C2 h3 h& U7 G. c
g- \# c* P' i
尚诚科技杨帆,电话" m, p2 Q0 R# [; E8 |/ H% _1 v6 b
’应广大陆技术支持,销售全乐列应广空片,并承接小方案川发# [; K1 g/ Y9 G0 }3 T3 N9 N2 m6 t
ewer
0 J# Q k8 G+ N; Z& {0 L* z0~16777215
# }7 {: w/ V4 ?& T" G! Qdword! Q" d3 G3 @ @5 _
324 R8 p% W. Z- v0 K
4) x1 ]; } T- {; Q2 q& {. b
0~4294967295
O8 @7 ?: r- U: R( L常量
, O3 Y$ q! a2 \' A( G! }. B数字常量:
. F/ A' u. E( u支持二进制,十进制以及进制的常数
& A" D* w; O& L2 ?2 ^' `(1).十六进制,以0x开头或者H结尾:例如:0xAB,0CDh
& H9 V! A4 e5 C8 q4 J) a(2).进制,以D结尾或者不写2 N5 Z& S {/ l$ ?. \
例如:12,34d
; z7 P/ h5 w/ ]' e% f& K进制,以OB开头或者B结尾:例如:OB11001100,01011010B
. `' [5 i$ m0 t. y; u' O(4).在二进制中,可以增加¨,以提高程序撰写的可读性
# T' q, R- Z' t( q8 _' D, {6 z- M(5)
% @0 [/ v$ M, w6 s; j" T范例:0 D" |7 A- z7 W; C: B2 o
mov A 31h
) @# {8 ]' O" m- I) C- ZMOV* ~6 X9 T9 m% U% R3 r
A,49& G7 j8 y8 I) F0 y
MOV9 a: | X3 Z) J" F i1 y5 t/ D
A,OB110001
2 C w7 l7 n1 I, [3 k7 a3 t1 NMOVA,’1" m8 V8 `, X4 M# u$ Y0 L6 _/ d
字符常量:可以为^A~Z,az^,,0~9作为常量的丌头,字符常量使用前需要! r, n9 e X6 ?( w% e
定义具体的数字,定义字符常量的作用是方便程序阅读。比如:
& B0 j9 r# I8 w" G' {! r: I! ?tdefine c ledon 0) T: K9 z' s2 n/ n5 c
井 define C BrIGhtNESS mAⅩ220;
1 l; O. o0 y8 R. f1 X( n6 C变量
; F: s8 W& y" i9 o I$ m3 \(1).变量名称不分人小写,变量开头为英文字母或者下滑线,如AZ,
* ?, P. ~/ c g4 Wa z
" A) p1 i9 ?7 D0 `; {3 Y9 L: l2).@不能做变量名称之开头,@用于系统定义最近的向前或者向后跳转地址3 r+ v L9 {" h0 x5 K" F J6 o3 g
(3).非变量之名称开头则可以为AZ,az
; K3 J# {; t+ w, @+ U(4).变量字符串长度不限。, j$ e+ d+ l+ S; W
(5).变量分位变量,单字节变量,双字节变量,三字节变量,和4字节变量。1 Z& b* x) D/ J/ w7 _3 d
请见1.4的数据类型表。4 k* X m+ j) |
范例
% L# W) O" F# m# x# E" k/ o位变量的定义:; s: A9 D' m9 L8 X& a# n
在单核的单片机中,位变量必须存放在RAM前16,或者前32字节内,具体! c: d3 E; X& F$ G% s, M( ]
根据IC的型号确定。位变量,可以指定具体RAM的位,也可以
! ~6 r0 z3 _8 @; r由系统分配, ^& N- `* a5 }9 z3 k" Y
定义一个具体RAM的位时,需要先定义一个或者儿个字节的变量' r3 V1 r( ]- X/ f
定义格式:bit位变量名:具体RAM名.x(x由07组成,或者更大的数字031)
7 P; a/ w& n( G9 W5 r( Q; U如- \6 G# t0 C* k* e) s; S
Byte my flag://先定义一个字节,作为一些标志定义
* U' z8 r3 P% O5 V: iBit f key busy: my flag.0;/指定具休变量的具休第0位
; p5 w3 l& i4 p" X3 [- I; [Bit fled on: my flag.1;//指定具体变量的具体第1位
7 |2 X) d/ _/ A8 M. K8 d# f; Q当不指定RAM位置的位定义,则具体RAM位置由系统分配,直接由bit定义:2 M0 Y1 ?! H A% P# N
定义格式:bit位变量名' d. h5 n# U3 l7 c, D/ @# S# h
如
$ l) @: f; p! R t( ?8 dBit f usb on
% J3 h" I8 z) p+ j. l我的博客空间:! p3 r6 h+ h$ O/ W
欢迎光临;我的拍拍店
" a( [2 u! k) X" J& I第页6 {- Z- f ]4 R6 G$ q+ z, r# u- S
+ h& E( T& J% e# |' y尚诚科技杨帆,电话* M9 H K4 Y" m6 J& t% D
’应广大陆技术支持,销售全乐列应广空片,并承接小方案川发9 o$ N3 q* T* `
Bit f charge full
: Y& `- T; G8 d6 S" l, H变量的定义:& I, b3 u+ |: S; e; I
变量的定义格式:数据类型变量名;9 }) s7 i. o. `+ i
比如:
; M- L: c5 i3 \: x% GByte my flag
. n6 ~" i+ H: qWord t16 cnt% J; i9 z6 Z; F1 @
Word user piont;8 W$ _6 b3 B! E% j; R
Dword timer 10ms
5 v3 j8 |% b- m4 K/ ?3 ~# }# t1.8表达式:
+ Y( T+ q' F5 w1 L, l. F算术表达式】
8 N8 s% }4 n* B8 S本发展系统已提供、+、-、&、|、、()、=、+=、-、&=、‖
" T: _3 \# S5 M3 E# e) Z# `等操作数。
3 j# V8 p+ O6 m. n" ]: P: F以下为例:
- L6 z! C) q) u8 v; u" v" ~5 }0 bBB1, z) W: c7 v( O6 p1 _4 U
BB2) Q! n2 l5 ]% N# h( K& r- H
+-(WW2+BY2)81234h% [/ k) v9 s9 ]
不过以下三点请注意:
7 ?" o& c3 l* F# e4 z9 S% i(1).尚未提供连等的表达式,如下范例:
! e1 N! C& h/ T& eBB1
9 n7 V3 Q. }6 l) n3 o(BB2BB3)+2;
' y* ]4 @" V; P, cBBI4 Y4 O. X9 h- u# V) p
BB2= BB3
! q4 A0 L) I$ W% h(2).对于++、-的操作数,暂时只允许如下单一格式。% S- e# u+ i, F* _/ w
BB1++; Q. o8 @7 D5 U5 |
WWI( ]' J# t1 `+ A5 {$ ^9 @& Y
(3).对于 |
|