C语言中编程规范课件

上传人:s9****2 文档编号:584752655 上传时间:2024-08-31 格式:PPT 页数:43 大小:311.50KB
返回 下载 相关 举报
C语言中编程规范课件_第1页
第1页 / 共43页
C语言中编程规范课件_第2页
第2页 / 共43页
C语言中编程规范课件_第3页
第3页 / 共43页
C语言中编程规范课件_第4页
第4页 / 共43页
C语言中编程规范课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《C语言中编程规范课件》由会员分享,可在线阅读,更多相关《C语言中编程规范课件(43页珍藏版)》请在金锄头文库上搜索。

1、C语言的基本知识语言的基本知识辅助训练辅助训练C语言提要语言提要oC语言的语法语言的语法oC语言的基本运算及语言的基本运算及流程控制语句流程控制语句o控制系统中常用的控制系统中常用的C语言函数语言函数oTC2.0环境的使用环境的使用oC程序的编写和要求程序的编写和要求C语言的语法语言的语法-C语言的特点语言的特点oC程序的基本组成:main() 变量定义 执行语句组子函数名称1(参数) 变量定义 执行语句组子函数名称2(参数) C语言的语法语言的语法-C语言的特点语言的特点o程序以函数为单元,并且有且仅有一个主函程序以函数为单元,并且有且仅有一个主函数数main();o函数由函数说明和函数体两

2、部分组成;函数由函数说明和函数体两部分组成;o变量的声明和定义必须在函数头部;变量的声明和定义必须在函数头部;o语句必须以语句必须以“;”结束;结束;o注释:注释:/*/oC语言允许直接访问物理地址;可以直接对语言允许直接访问物理地址;可以直接对硬件进行操作;能进行位(硬件进行操作;能进行位(bit)操作)操作C语言的语法语言的语法(2)-C语言的数据类型语言的数据类型o整型:整型:int、short、long(数据在内存中以(数据在内存中以2 2进制形式存放)进制形式存放)o字符型:字符型:charo浮点型:浮点型:float、doubleo指针:指针:char*、int*、float*o数

3、组:数组:inta10;o结构体结构体:structo公用体:公用体:uniono无符号数无符号数:unsigned(unsignedint;unsignedchar)C语言的基本运算语言的基本运算算术运算算术运算运算符名称例子运算功能加a+b求a与b的和减a-b求a与b的差*乘a*b求a与b的积/除a/b求a除以b的商%取余a%b求a除以b的余数+自增a +a的值加1-自减a - a的值减1- -取负- a求a的负数C语言的基本运算语言的基本运算算术赋值运算算术赋值运算运算符名称例子等效于加赋值a+b a a+ b减赋值a-b a a b*乘赋值a*b a a* b/除赋值a/b a a/b

4、%取余赋值a%b a a%bC语言的基本运算语言的基本运算位运算位运算运算符名称例子运算功能&位与a&ba和b按位与|位或a|ba和b位或位反 aa按位取反右移位a 2 a右移2位左移位a4 0x05 * *在计算机系统中常常采用移位运算以快速实现乘法在计算机系统中常常采用移位运算以快速实现乘法在计算机系统中常常采用移位运算以快速实现乘法在计算机系统中常常采用移位运算以快速实现乘法和除法的运算,每左移和除法的运算,每左移和除法的运算,每左移和除法的运算,每左移1 1 1 1位等效于乘以位等效于乘以位等效于乘以位等效于乘以2 2 2 2,每右移,每右移,每右移,每右移1 1 1 1位等位等位等位

5、等效于除以效于除以效于除以效于除以2 2 2 2。位运算的应用举例(位运算的应用举例(1)o方法方法1:先右移:先右移n位,再与位,再与“0x01”bit = (byten)&0x01;o方法方法2:使用屏蔽字:使用屏蔽字unsigned char MASK8 = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80;bit = byte & MASKn;0 0 0 0 1 1 1 01思考:如何从一个字节思考:如何从一个字节bytebyte中取出第中取出第n n位?位?void byte_bit(int *bits,char byte)void byt

6、e_bit(int *bits,char byte) int i; int i; for(i=0;i8;i+) for(i=0;ii) & 0x01;bitsi=(bytei) & 0x01; unsigned char bit_byte(unsigned int *bits)unsigned char bit_byte(unsigned int *bits) unsigned char byte = 0; unsigned char byte = 0; int i; int i; for(i=0; i8; i+) for(i=0; i8; i+) byte += (bitsii);byte

7、+= (bitsii); return byte; return byte; ovoidbyte_bit(int*bits,charbyte)oointi;ofor(i=0;ii)&0x01;oomain()oocharbyte;ointbit8=0;oprintf(npleaseinputbyten);oscanf(%c,&byte);obyte_bit(bit,byte);oprintf(nbit=%d,%d,%d,%d,%d,%d,%d,%d,bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0);oC语言的基本运算语言的基本运算关系运算关系运算运算符名称例子运

8、算功能大于aba大于b小于a=大于等于a = ba大于等于b=小于等于a = ba小于等于b!=不等于a != ba不等于bC语言的基本运算语言的基本运算逻辑运算逻辑运算运算符名称例子运算功能&逻辑与a & ba与b逻辑或a ba或b!逻辑反!aa反C语言的流程控制语句语言的流程控制语句o选择语句选择语句nif (表达式表达式)语句语句1 else语句语句2nswitch(表达式)表达式)case 常量表达式常量表达式1:语句语句1;break; case 常量表达式常量表达式2:语句语句2;break; case 常量表达式常量表达式n:语句语句n;break; default:语句语句n+

9、1; 学生成绩分段:90100为A,8089为B,6079为C,059为D,输入学生成绩,然后分类输出。includeMain()int x;printf(“请输入学生成绩:/n”);scanf(“%d”,&x)switch(x/10) case 10: printf(“x=%d-A”,x);break; case 9: printf(“x=%d-A”,x);break; case 8: printf(“x=%d-B”,x);break; defaut: printf(“x=%d number error!”,x); C语言的流程控制语句语言的流程控制语句o循环语句循环语句nwhile (表达

10、式表达式)循环体语句循环体语句ndo 语句语句循环体语句循环体语句while (表达式表达式);nfor (i=0;iN;i+) 循环体语句循环体语句C语言的流程控制语句语言的流程控制语句o转移语句转移语句nbreak;ncontinue;int n;for(n=10;n100;n+) if(n%3!=0) continue; printf(“%5d”,n);nreturn;ngoto 表达式表达式NYYbreakcontinueNNYYNbreak语句退出循环continue结束本次循环表达式表达式C语言中几个常用的函数语言中几个常用的函数o标准输入输出:标准输入输出:scanf(“%d”,

11、&n);printf(“Thiss a test!n %d”, n);getchar();gets();oI/O端口读写:端口读写:inportb(BASEADDR+6);outportb(BASEADDR+13, 0x05);cmd操作操作0返回按键的键值,该值是返回按键的键值,该值是2 2个字节的整型数,若没有个字节的整型数,若没有键按下,则该函数一直等待,直到有键按下。当按键按下,则该函数一直等待,直到有键按下。当按下时,若返回值的低下时,若返回值的低8 8位为非零,则表示为普通键,位为非零,则表示为普通键,其值代表该键的其值代表该键的ASCIIASCII码。若返回值的低码。若返回值的低

12、8 8位表示为位表示为扩展的扩展的ASCIIASCII码,表示按下的是特殊功能键。码,表示按下的是特殊功能键。1此时,该函数则用来查询是否有键按下。若返回非此时,该函数则用来查询是否有键按下。若返回非0 0值,则表示有键按下,若为值,则表示有键按下,若为0 0,表示没键按下。,表示没键按下。2此时此时, ,该函数将返回一些控制键的状态,各键状态由该函数将返回一些控制键的状态,各键状态由该函数返回的低该函数返回的低8 8位的各位值来表示。位的各位值来表示。bioskey(int cmd) bioskey(int cmd) 它在它在Bios.hBios.h头文件中进行了说明,头文件中进行了说明,该

13、函数实际上调用了该函数实际上调用了BIOSBIOS的的INT16HINT16H中断,参数用来确中断,参数用来确定定bioskey()bioskey()如何操作如何操作 键盘控制 C语言中几个常用的函数语言中几个常用的函数(2)o键盘输入:键盘输入:kbhit()bioskey(0) /*返回键盘输入*/while(!kbhit() /* 如果没有按下任意键继续 */o延时:延时:delay(millisecond)延时若干毫秒sleep(second) 延时若干秒TurboC2.0环境的使用环境的使用oFile:管理文件和目录管理文件和目录, ,装入或保存程序等装入或保存程序等; ;oEdit

14、:进入进入TurboC 的编辑程序的编辑程序, ,输入和修改源程序输入和修改源程序; ;oRun:编译、连接和运行装入编译、连接和运行装入TurboC 环境的当前程序;环境的当前程序;oCompile:编译和连接装入编译和连接装入TurboC 环境的当前程序;环境的当前程序;oProject:管理多文件工程;管理多文件工程;oOptions:设置设置编译程序和连接程序的各种选择项编译程序和连接程序的各种选择项;oDebug:设置设置各种调试选择项各种调试选择项;oBreak/Watch:设置设置断点,在调试阶段以便监视所需的断点,在调试阶段以便监视所需的 变量变量;TurboC2.0环境环境(

15、1)管理文件和目录管理文件和目录管理文件和目录管理文件和目录, , , ,装装装装入或保存程序等入或保存程序等入或保存程序等入或保存程序等进入进入进入进入Turbo C Turbo C 的编辑程的编辑程的编辑程的编辑程序序序序, ,输入和修改源程序输入和修改源程序输入和修改源程序输入和修改源程序编译、连接和运行装入编译、连接和运行装入编译、连接和运行装入编译、连接和运行装入Turbo C Turbo C 环境的当前程序环境的当前程序环境的当前程序环境的当前程序编译和连接装入编译和连接装入编译和连接装入编译和连接装入Turbo Turbo C C 环境的当前程序环境的当前程序环境的当前程序环境的

16、当前程序管理多文件工程管理多文件工程管理多文件工程管理多文件工程设置编译程序和连接设置编译程序和连接设置编译程序和连接设置编译程序和连接程序的各种选择项程序的各种选择项程序的各种选择项程序的各种选择项设置各种调试选择项设置各种调试选择项设置各种调试选择项设置各种调试选择项设置断点,在调试阶段设置断点,在调试阶段设置断点,在调试阶段设置断点,在调试阶段以便监视所需的变量以便监视所需的变量以便监视所需的变量以便监视所需的变量TurboC2.0环境设置环境设置TurboC2.0环境的使用环境的使用o菜单栏菜单栏: Alt+F F10o几个常用的命令几个常用的命令n打开:打开:F3n保存:保存:F2n

17、编译连接生成编译连接生成EXE:F9;n运行运行:Ctrl+F9(用AltF5切换到用户窗口切换到用户窗口)n调试:调试:o单步:单步:F8 不可进入函数体不可进入函数体o单步单步: F7 可进入被调函数体可进入被调函数体o断点断点:Ctrl+F8o观察变量:观察变量:Ctrl+F7n全屏全屏窗口窗口 模式切换模式切换:Alt+Entero编辑程序编辑程序n编写程序:记事本,之后在编写程序:记事本,之后在TC中打开调试中打开调试变量申明变量申明o全局变量与局部变量(作用域)全局变量与局部变量(作用域)ointx;/*x就是一个全局变量就是一个全局变量*/omain()oointy;/*y就是一

18、个局部变量就是一个局部变量*/oo尽量少用全局变量,因为系统为其分配固定的尽量少用全局变量,因为系统为其分配固定的永久存储空间;而系统为局部变量分配动态存永久存储空间;而系统为局部变量分配动态存储空间。储空间。模块化编程模块化编程o在主函数中的语句尽量的清晰明了,多用子在主函数中的语句尽量的清晰明了,多用子函数来完成功能模块;函数来完成功能模块;ovoid DI(int channel, int *DI_in)oo .o模块化编程(模块化编程(1)ovoid DO(int channel, int *DO_Out)oo .o模块化编程(模块化编程(2)omain()oo int DI_in6,

19、DO_out6,i;o DI(0,DI_in);/*获得光电对管被挡情况获得光电对管被挡情况*/o o o DO(0,DO_out); /*输出输出DO*/ooInt I /*全局变量全局变量*/omain()oo int DI_in6,DO_out6,i; /*局部变量局部变量*/o DataInput(参数)o ReadPort(参数)o WritePort(参数)o Control(参数)o DataOutput(参数)o程序规范程序规范( (例例) ) /*/*屏幕输入模块屏幕输入模块* */ /*I/O端口输入模块端口输入模块*/*I/O端口输出模块端口输出模块*/*/*控制模块控制

20、模块* */ /*/*屏幕输出模块屏幕输出模块* */ /1. 1. 变量:变量:全局变量与局部变量;全局变量与局部变量;全局变量与局部变量;全局变量与局部变量;2. 2. 子函数:子函数:屏幕输入屏幕输入屏幕输入屏幕输入/ / / /输出、输出、输出、输出、I/OI/OI/OI/O端口输入输出端口输入输出端口输入输出端口输入输出 控制模块控制模块控制模块控制模块3. 3. 调式方法:调式方法:主程序开始,子函数一个一个编主程序开始,子函数一个一个编主程序开始,子函数一个一个编主程序开始,子函数一个一个编 写调试写调试写调试写调试4. 4. 程序注释程序注释程序规范程序规范 程序书写风格程序书

21、写风格o简洁、明了、易读简洁、明了、易读o缩进编写缩进编写o多写注释多写注释(TC下注释下注释/*/)o调试程序:单步执行,加调试程序:单步执行,加Watcho开关量输入程序及分析开关量输入程序及分析即:即:Inportb(port)一直在执行)一直在执行While(!kbhit() inportb(port);o数字量输入采取一直读取得策略main()main() int i=0; int i=0; clrscr(); clrscr(); while( while(!bioskey(1)!bioskey(1) ) i=i+1; i=i+1; printf(%dn,i); printf(%dn

22、,i); return; return; 循环控制循环控制 DIDI通道程序(移位取位)通道程序(移位取位)Num=14Num=140 0 0 0 1 1 1 00 0 0 0 1 1 1 00 0 0 0 0 0 0 10 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0DI_NUM0=DI_NUM0=0 0i=0i=0与与与与i=1i=1右移一位右移一位右移一位右移一位0 0 0 0 0 1 1 10 0 0 0 0 1 1 10 0 0 0 0 0 0 10 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1D

23、I_NUM1=DI_NUM1=1 1与与与与DIDI通道程序通道程序设置基地址设置基地址设置基地址设置基地址循环循环循环循环移位获取位移位获取位移位获取位移位获取位 int BASE_ADDRESS=0x220;int BASE_ADDRESS=0x220;int creat_DI(int *DI_NUM, int num)int creat_DI(int *DI_NUM, int num) int i=0; int i=0; for(i=0;i6;i+) for(i=0;ii)&0x0001; DI_NUMi=(numi)&0x0001; return; return; DIDI通道程序通道

24、程序( (续续) )0 0 0 0 0 0 1 10 0 0 0 0 0 1 10 0 0 0 0 0 0 10 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1DI_NUM3=DI_NUM3=1 1与与与与i=5i=5右移右移右移右移5 5位位位位0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 10 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0DI_NUM5=DI_NUM5=0 0与与与与0 0 0 0 1 1 1 00 0 0 0 1 1 1 0i=2i=2右移右移右

25、移右移2 2位位位位DIDI通道程序通道程序( (续续) )main()main() int DI6=0; int DI6=0; int DI_out; int DI_out; char c; char c; clrscr(); clrscr(); while(1) while(1) DI_out=inportb(BASE_ADDRESS+6); DI_out=inportb(BASE_ADDRESS+6); creat_DI(DI,DI_out); creat_DI(DI,DI_out); printf(n%d,%d,%d,%d,%d,%dn,DI0, printf(n%d,%d,%d,%d

26、,%d,%dn,DI0, DI1,DI2,DI3,DI4,DI5); DI1,DI2,DI3,DI4,DI5); printf(nPress n to next and other key to printf(nPress n to next and other key to quit!n);quit!n); c=bioskey(0); c=bioskey(0); if(c=n|c=N) continue; if(c=n|c=N) continue; else return; else return; 定义变量定义变量定义变量定义变量清屏清屏清屏清屏循环循环循环循环读读读读DIDI低字节低字节低字节低字节 调用子程序调用子程序调用子程序调用子程序 判断是否继续循环判断是否继续循环判断是否继续循环判断是否继续循环

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号