当前位置:文档之家› C语言符号、指令表

C语言符号、指令表

C语言符号、指令表
C语言符号、指令表

C语言符号、指令表

编译指令

注解://—单行注解;/*多行注解*/ 基本数据类型(i n t,f l o a t,d o u b l e,c h a r,v o i d)

用户自定义数据类型格式

typedef struct{

数据类型变量序列1;

数据类型变量序列1;

...

}自定义数据类型的名称;

保留字

d e f a u l t,d o,d o u b l e,f a r,e l s e,e n u m,e x t e r n,f l o a t,f o r,g o t o,i f,f u n c u s e d,i d a t a,i n t,

i n l i n e,i n t e r r u p t,l a r g e,l o n g,p d a t a,_p r i o r i t y_,r e e n t r a n t,r e t u r n,s b i t,s f r,s f r16,

s h o r t,s i g e n d,s i z e o f,s m a l l,s t a t i c,s t r u c t,s w i t c h c_t a s k_,t y p e d e f,u s i n g,u n i o n,

u n s i g n e d,v o i d,v o l a t i l e,w h i l e,x d a t a

常量表示法

-----------------------------------------------------运算符----------------------------------------------------- 算术运算

比较运算

※比较运算结果是个布尔值既T R U E(真值)或FA L S E(假值)。假设a等于8

逻辑运算

※逻辑运算结果是个布尔值既T R U E(真值)或FA L S E(假值)。假设a等于8

位逻辑运算

※假设a等于5

----------------------------------------------------控制命令--------------------------------------------------- i f语句

i f(条件)语句1;

e l s e语句2;

例:if(d==4) d=0; //如果d等于4就设置d等于0

else d++; //否则就将d加1

if(ticks==0) { //如果ticks等于0

ticks=1000; //ticks 设置成1000

counter[0]++; //counter[0]加1

}

嵌套i f语句

例:if(counter[0]==10) {

counter[1]++;

counter[0]=0;

if(counter[1]==10) {

counter[2]++;

counter[1]=0;

}

}

s w i t c h(变量){

c a s e常量1:语句1;b r e a k;

c a s e常量2:语句2;b r e a k;

c a s e常量3:语句3;b r e a k;

......

d e f a u l t;语句n;

}

f o r循环

f o r(初值,条件,变化值)语句;

例:for(i=0;i<10;i++) x=x+i;

for(i=1;i<10,i++)

for(j=1;j<10,j++)

printf(“%d %d”,i,j);

无穷循环:

for( ; ; );

w h i l e循环

w h i l e(条件)语句;

例:while (ch!=!’A’) ch=getche();

无穷循环:

while(1);

d o/w h i l e循环

d o{

语句;

...

}w h i l e(条件);

例:do {

ch=getche();

} while (ch!=”A”);

loop1:

x++;

if(x<100) goto loop1;

----------------------------------------------------指针和函数------------------------------------------------

指针的定义

数据类型*指针变量的名字;

例:char *p;

int *x;

指针与数组

例:char filename[80];

char *p;

p=filename; //指针p存放filename的开始地址

int x[5]={1,2,3,4,5};

int *p,sum,i;

p=x; //指针p存放数组x的开始地址

for(i=0;i<5;i++)

sum=sum+p[i]; //p[i]相当于x[i]

指针的运算

1.针变量前面加上*号就是取得指针所指向位置的内

容。

例:int x[5]={1,2,3,4,5};

int *p;

p=x; //指针p存放数组x的开始地址

*p=10; //相当于设置x[0]等于10

2.变量前面加上&符号,可以取得一个变量的位置。

例:int x,y;

int *p;

p=&x; //指针p存放x的地址,相当于p是指向x 的指针

*p=1; //相当于设置x等于1

3.&符号也可以加在数组的前面

例:int x[5];

int *p;

p=&x[2]; //指针p存放x[2]的地址,相当于p是指向x[2]的指针

*p=50; //相当于设置x[2]等于50

函数

函数类型函数名称(参数序列);

参数说明

{

函数的主体

}

例:void delay (void) { //不返回任何数据的函数unsigned char i,j; //没有任何参数的函数for(i=0,i<255,i++)

for(j=0,j<255,j++);

}

main()

{

...

delay(); //调用函数

}

例:unsigned char sum(unsigned chat a,unsigned chat b)

{

unsigned chat x;

check_GLCD_busyflag(); //函数中可以调用另一个函数

x=a+b;

return x; //return会返回x的数据

}

中断服务函数

void 中断服务程序的名称(void) interrupt 中断号码using 寄存器组号码

{

中断服务子程序主体

}

中断号码

#define IE0_VECTOR 0 //0x03

#define TF0_VECTOR 1 //0x0B

#define IE1_VECTOR 2 //0x13

#define TF1_VECTOR 3 //0x1B

#define SIO_VECTOR 4 //0x23

对于S51有定时器2

#define TF2_VECTOR 5 //0x2B

例:static void xint0_isr(void) interrupt IE0_VECTOR(或0)using 1

{

unsigned char i,j=0xFF;

for(i=0,i<16,i++)

{

j++;

P1=j; //将数值输出到P1口

delay_4isr();

}

}

-----------------------------------------------------汇编语言-------------------------------------------------- 在C中加入汇编语言

例:void delay100us()

{

#pragma asm

mov r7,#1

more: mov r3,#48

djnz r3,$

djnz r7,more

#pragma endasm

}

----------------------------------------------------宏(macro)----------------------------------------------

宏的定义

%*d e f i n e(m a c r o名称)(m a c r o的指令)

例:%*define (write_1) (

setb DI

serb SK

clr SK

)

#d e f i n e宏的名称宏的指令

例:#define uchar unsigned char

() 圆括号

[] 下标运算符

-> 指向结构体成员运算符

. 结构体成员运算符

2级优先级右结合

! 逻辑非运算符

~ 按位取反运算符

++ 自增运算符

-- 自减运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址与运算符

sizeof 长度运算符

3级优先级左结合

* 乘法运算符

/ 除法运算符

% 取余运算符

4级优先级左结合

+ 加法运算符

- 减法运算符

5级优先级左结合

<< 左移运算符

>> 右移运算符

6级优先级左结合

<、<=、>、>= 关系运算符7级优先级左结合

== 等于运算符

!= 不等于运算符

& 按位与运算符

9级优先级左结合

^ 按位异或运算符

10级优先级左结合

| 按位或运算符

11级优先级左结合

&& 逻辑与运算符

12级优先级左结合

|| 逻辑或运算符

13级优先级右结合

? : 条件运算符

14级优先级右结合

=+ =- =*

=/ =% =

>= < <=

&= ^= |= 全为赋值运算符15级优先级左结合

,逗号运算符

相关主题
文本预览
相关文档 最新文档