完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
编译指令
基本数据类型 (int,float,double,char,void)
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,***it,sfr,sfr16, short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union, unsigned,void,volatile,while,xdata 常量表示法
算术运算
比较运算
逻辑运算
位逻辑运算
----------------------------------------------------控制命令--------------------------------------------------- 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; } 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; //p相当于x 指针的运算 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)---------------------------------------------- 宏的定义 %*define (macro名称) (macro的指令) 例:%*define (write_1) ( setb DI serb SK clr SK ) #define 宏的名称 宏的指令 例:#define uchar unsigned char C语言中的符号总结 运算符的种类C语言的运算符可分为以下几类; 1. 算术运算符 用于各类数值运算,包括加减乘除求余自增自减共七种运算 { ( + ) ,( - ),(* ) ,( / ) ,( % ),( ++ ),(-- )}。 2. 关系运算符 用于比较运算,包括大于(>),小于(<),等于(==),大于等于(>=), 小于等于(<=),不等于(!=)共六种。 3.逻辑运算符 用于逻辑运算,包括与(&&)或(||)非(!)三种. 4.位操作运算符 参与运算的量,按二进制位进行运算,包括: 位与(&),位或(|),位非(~),为异或(^),左移(<<),右移(>>)共六种。 5.赋值运算符 用于赋值运算,分为: 简单赋值(=) 复合算术赋值(+=,-=,*=,/=,%=) 复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符 这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)两种运算。 9.求字节数运算符 用于计算数据类型所占用的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→, .) 1.C的数据类型 基本类型,构造类型,指针类型,空类型 2.基本类型的分类及特点 类型说明符 字节 数值范围 字符型char 1 C字符集 基本整型int 2 -32768~32767 短整型short int 2 -32768~32767 长整型 long int 4 -214783648~214783647 无符号型 unsigned 2 0~65535 无符号长整型 unsigned long 4 0~4294967295 单精度实型 float 4 3/4E-38~3/4E+38 双精度实型 double 8 1/7E-308~1/7E+308 3.常量后缀 L或l 长整型 U或u 无符号数 F或f 浮点数 4.常量类型 整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。 5.数据类型转换 a自动转换 在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。 b强制转换 由强制转换运算符完成转换。 6.运算符优先级和结合性 一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值 7.表达式 表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。 表示输出类型的格式字符 格式字符意义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e 以指数形式输出单、双精度实数 g 以%f%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 标志字符为-、+、#、空格四种,其意义下表所示: 标志格式字符 标 志 意 义 - 结果左对齐,右边填空格 + 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号 # 对c,s,d,u类无影响;对o类, 在输出时加前 缀o 对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 格式字符串 格式字符串的一般形式为: % 1.类型 表示输入数据的类型,其格式符和意义下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线””开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。 常用的转义字符及其含义 转义字符 转义字符的意义 n 回车换行 t 横向跳到下一制表位置 v 竖向跳格 b 退格 r 回车 f 走纸换页 \ 反斜线符”” ’ 单引号符 a 鸣铃 ddd 1~3位八进制数所代表的字符 xhh 1~2位十六进制数所代表的字符 广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的ddd和xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如101表示字?quot;A” ,102表示字母”B”,134表示反斜线,XOA表示换行等。转义字符的使用 在C语言中,对变量的存储类型说明有以下四种: auto 自动变量 register 寄存器变量 extern 外部变量 static 静态变量 自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后, 可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。 因此变量说明的完整形式应为: 存储类型说明符 数据类型说明符 变量名,变量名…; 例如: static int a,b; 说明a,b为静态类型变量 auto char c1,c2; 说明c1,c2为自动字符变量 static int a[5]={1,2,3,4,5}; 说明a为静整型数组 extern int x,y; 说明x,y为外部整型变量 与指针有关的各种说明和意义见下表。 int *p; p为指向整型量的指针变量 int *p[n]; p为指针数组,由n个指向整型量的指针元素组成。 int (*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n int *p() p为返回指针值的函数,该指针指向整型量 int (*p)() p为指向函数的指针,该函数返回整型量 int **p p为一个指向另一指针的指针变量,该指针指向一个整型量。 指针变量的赋值 p可以有以下两种方式: (1)指针变量初始化的方法 int a; int *p=&a; (2)赋值语句的方法 int a; int *p; p=&a; (1)取地址运算符& (2)取内容运算符* |
|||
|
|||
只有小组成员才能发言,加入小组>>
2302 浏览 0 评论
1350浏览 3评论
816浏览 2评论
465浏览 1评论
1336浏览 0评论
218浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 03:29 , Processed in 1.272309 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号