C语言指令、符号表

C语言指令、符号表


2024年4月27日发(作者:)

C

C

编译指令

编译指令

#include

#define

#undef

#asm和#endasm

#ifdef、#ifndef、#else、#endif

包含另一个文件

定义一个宏(macro)或是常量

取消一个宏常量的定义

在程序中加入汇编语言的程序

用于条件式的编译

说明

注解

://—单行注解;/*多行注解*/

基本数据类型 (int,float,double,char,void)

数据类型

bit

char

unsigned char

signed char

int

short int

unsigned int

signed int

long int

unsigned long int

signed long int

float

double

void

字符

无符号字符

有符号字符

整型

短整型

无符号整型

有符号整型

长整型

无符号长整型

有符号长整形

浮点数(实数)

双精度浮点

类型说明

1

8

8

8

16

16

16

16

32

32

32

32

32

0

长度(位)

0,1

—128~127

0~255

—128~127

—32768~32767

—32768~32767

0~65535

—32768~32767

—2147483648~2147483647

0~4294967295

—2147483648~2147483647

0.175e-38~0.402e38

0.175e-38~0.402e38

没任何数据

数据长度

用户自定义数据类型格式

typedef struct{

数据类型 变量序列1;

数据类型 变量序列1;

...

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

保留字

_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,

default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,

inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,

short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,

unsigned,void,volatile,while,xdata

C

C

常量表示法

常数

十进制

二进制

八进制

十六进制

无符号整数常量

长整数常量

无符号长整数常量

浮点数的常量

字符常量

字符串常量

开头加上0b

开头加上O

开头加上0x

结尾加上U

结尾加上L

结尾加上UL

结尾加上F

以单引号括起来

以双引号括起来

规则

一般十进制格式 1234567890

0b00001110

O0123

0xFF45

30000U

299L

327800UL

4.234F

‘a’

“hello”

范例

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

算术运算

运算符 说明 范例

c=a+b;

d=a—b;

e=a*b;

f=a/b;

g=a%b;

c++;相当于c=c+1;

a=8;

e+=5;相当于e=e+5;

b*=5;相当于b=b*5;

a/=5;相当于a=a/5;

d 等于6

e 等于16

f 等于4

g 等于0

c 等于11

设置a等于8

e 等于21

b 等于0

a 等于1

执行结果

c 等于10 加

+

*

/

取余数

%

加1

++

减1

——

等于

=

先相加在等于

+=

先相减在等于

—=

先相乘在等于

*=

先相除在等于

/=

先取余数在等于

%=

※假设a等于8,b等于2

d——;相当于d=d—1; d 等于5

f—=5;相当于f=f—5; f 等于—1

a%=5;相当于a=a%5; a 等于3

比较运算

运算符 说明 范例 执行结果

等于

== a==5 F

不等于

!= a!=5 T

小于

< a<5 F

大于

> a>5 T

小于等于

<= a<=5 F

大于等于

>= a>=5 T

比较运算结果是个布尔值既

TRUE(真值)或FALSE(假值)

。假设a等于8

C

C

逻辑运算

运算符 说明 范例 执行结果

AND (a>5)&&(a<10)

&& T

OR (a<5)||(a>10)

|| F

NOT !(a>10)

! T

逻辑运算结果是个布尔值既

TRUE(真值)或FALSE(假值)

。假设a等于8

位逻辑运算

运算符 说明

AND

OR

NOT

XOR

左移

右移

范例 执行结果

a等于1

a等于0x85

a等于0xFA

a等于0xFA

a等于0x0A

a等于0x0A

&

|

~

^

<<

>>

假设a等于5

a&0x01

a|0x80

~a

a^0xFF

a<<1

a>>1

----------------------------------------------------控制命令---------------------------------------------------

if语句

if(条件) 语句1;

else 语句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

}

嵌套if语句

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

counter[1]++;

counter[0]=0;

if(counter[1]==10) {

counter[2]++;

counter[1]=0;

}

}

switch语句

switch (变量) {

case 常量1:语句1; break;

case 常量2:语句2; break;

case 常量3:语句3; break;

......

default ; 语句n;

}

C

C

for循环

for (初值,条件,变化值) 语句;

例: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( ; ; );

while循环

while (条件) 语句;

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

无穷循环:

while(1);

do/while循环

do {

语句;

...

} while(条件);

例:do {

ch=getche();

} while (ch!=”A”);

goto语句

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]

C

C

指针的运算

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 寄存器组号码

{

中断服务子程序主体

}

C

C

中断号码

#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)----------------------------------------------

宏的定义

%*define (macro名称) (macro的指令)

例:%*define (write_1) (

setb DI

serb SK

clr SK

)

#define 宏的名称 宏的指令

例:#define uchar unsigned char


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714180623a2397214.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信