版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C語言程式架構1.主程式。2.函式 ( 副程式 )3.標頭檔。#include “stdio.h”void main(void) unsigned char i, j, k; j=i+j; delay(); void delay(void) unsigned char i; for(i=1; i255; i+); *主程式 (Main progran):*主程式以main為其函式的名稱。main ( ) C語言敘述;*函式 (Function):void delay_lms (char j)返回值型態參數void delay_1ms(char j) for(j=0; j100; j+); *標
2、頭檔 (Head File):*標頭檔以x.h檔名儲存,它 主要用來定義各硬體I/O位 址,常數、函數的宣告。#define FALSE 0#define TURE l#define COUNTER 100徑和檔案名稱避免使用以下的字符用在徑上和檔案名稱上(它們是有問題的): / : * ? ” | & + , = % C語言的常數1.八進位表示法:以0開頭的數字。 例:011為八進位表示法,相當於十進位的9。2.十進位的表示法:不以0開頭的數字。 例:9213。3.十六進位的表示法:以0 x開頭的數字。 例:0 x11表示16進位11。即十進位的17。4.字元表示法:以單引號將英文字母、 阿
3、拉伯數字、符號括起來表示之。 A表示字母A,即0 x41 0表示阿拉伯數字0,即0 x30 #表示#符號5.特殊字元 ( 控制字元 ) 表示法控制字元ASCII碼字元名稱00 x00空格 (null space) NULLa0 x07響鈴 (bell ring) BELLb0 x08退格 (backspace) BSt0 x09標識 (tab) HTn0 x0a跳列 (newline) LFf0 x0c跳頁 (form feed) FFr0 x0d回轉 (earriage return) CR0 x22雙引號 (double quote) , 0 x2c單引號 (singal quote) ,
4、 0 x5c倒斜線 (bacrk slash) , C語言的變數格式: 變數資料型態 變數名稱; 【例】 int i;一、變數的名稱開頭字元 1.大寫英文字母 (A Z) 2.小寫英文字母 (a z) 3.底線_二、變數的組合 1.大寫英文字母 (A Z) 2.小寫英文字母 (a z) 3.阿拉伯數字 (0 9) 4.底線_三、變數名稱不可以為系統的保留字autobreakcasecharcontinue defaultdo double elseenumexternfloat gotoifintlongregister returnshortsizeofstaticstructswitcht
5、ypebefunionunsignedvoidwhile四、大寫與小寫的變數,代表不同的變數 (?)變數的資料型態 ( 基本資料型態 )格式:資料形態修飾 資料型態變數1.資料基本型態char: 存放字元資料型態。代表存放8位元資料。int: 存放整數的資料型態。代表存放16位元資料。float: 存放浮點數的資料型態。代表存放32位元資料。double:存放雙倍精度浮點數的資料型態。代表存放32位元資料。2.資料型態的修飾字:改變資料型態的意義。signed: 帶符號。unsigned:不帶符號。short: 短。未加入short的變數為short。long: 長。其資料長度為原資料型態的2
6、 倍。C語言基本資料型態另外的資型在m8c.inc支援的運算符號支援的運算符號支援的運算符號支援的運算符號支援的運算符號變數的宣告格式:資料型態修飾字 資料型態 變數名稱; 1 .宣告變數型態 char i; 宣告變數i為字元資料型態 2 . 宣告變數型態,並給予初始值 char i , j , k =10; unsigned char i=A ; 變數的種類 ( 變數的有效範圍 )(1)本地變數 (local variable) (2)全區變數 (global variable)(3)外部變數 (external variable)本地變數 (local variable)本地變數的有效範圍
7、只有在它所宣告的函式內有效void main(void) char i; i=10; test();void test(void) char i, k; i=100; k=i+k;i的有效範圍i, k的有效範圍此i與main()中之i不同全區變數 (global variable)全區變數的有效範圍是整個檔案內 (*.c )。檔案A.C中:檔案B.C中:char delay; 全區變數宣告void dkk (void)void main(void)delay=10; char delay ; 區域變數delay宣告 delay = delay /10; void f1 (void) delay
8、 = delay+1;外部變數 (external VARIABLE)外部變數的有效範圍為所有檔案的所有函式檔案A.C中: 檔案B.C中:EXTERNAL char delay;全區外部變數宣告 void dkk (void)void main(void) char delay ; 區域變數delay宣告delay=10; delay = delay /10; void f1 (void) delay = delay+1;變數的等級1.auto ( 自動變數 )2 . static ( 靜態變數 )4.bit ( 位元變數 )以堆疊方式儲存在記憶體空間。IAR-C是以暫存器R0R7來儲存自動變
9、數。(8051)auto ( 自動變數 )void delay (void) auto char i; 意義相同 char i;static ( 靜態變數 ) IAR-C編譯器是以固定位址存放此變 數,使用堆壘方式來存放 IAR-C將它儲存在8051CPU的記憶體00H7FH。 static char i; static int j;C語言的敘述 (statement)格式: 變數=任何合法的運算式;char a, b, c, j ;a=3+2 ; 結果:a=5b=a+4 ; 結果:b=9c=a/b ; 結果:c=0j=a-b ; 結果:-4算術運算關係運算子關係運算子用來比較變數的值或常數的
10、值,並將結果傳 回給變數。若為真,則結果為1,若為假,則結果為0。運算的結果不影響各個變數的值。* 邏輯運算的功能是用來判斷敘述的真、偽。* 若敘述為真,則結果為1。若敘述為偽,則結果為0。一般邏輯運算位元邏輯運算子* 位元邏輯運算子會將各變數或常數的每一個位 元 (bit)做邏輯運算,並將結果寫入某變數。條件控制指令條件控制指令用來控制C語言程式的執行流程1. for 指令2. while 指令3. do_while 指令4. if else 指令5. switch case 指令6. goto 指令(無條件)for 敘述for應用例(1)無限迴圈 for(;) ; 與組合語言JMP $相同
11、。(2)時間延遲 char i; for(i=0;i100;i + +);本指令會執行for迴圈100次,後離開for迴圈,繼續往下執行程式。(3)執行n次敘述後,繼續往下執行程式。 int i; for (i=0 ; i5 ; i+) P0=i; P1=0;執行順序: P0=0(i=0) P0=1 (i=1) P0=2 (i=2) P0=3 (i=3) P0=4 (i=4) 離開for迴圈 (I=5)4.多重迴圈 for控制敘述可以有多層迴路控制敘述。先執行 內部迴圈後,依序執行外部迴圈。5.for迴圈不可交叉【例】char i, j, k, l;i=0; j=0;for (k=0 ; k3
12、 ; k+) j=j +3; for (l=0; l 0) i ; (3)執行n次敘述 char i=100; while (i 0) 執行100次 敘述 ; i; 【例】 char i=3; while (i0) P1=i; i ; 執行順序:(1)i=3 , P1=3 , i=2 (i )(2)i=2 , P1=2 , i=1 (i )(3)i=1 , P1=1 , i=0 (i )(4)結束dowhile指令【指令格式: 】 do 敘述A; while (運算式) 敘述B;【執行流程圖: 】【說明】(1) 首先執行完do迴圈的敘述 A後, 才測試while的運算 式是否為真。若運算式為真
13、,則跳至do迴圈內,再執行迴圈內的敘述A。若為假,則跳出此迴圈,執行敘述B。(2)如果 內,只有一個敘述, 可以省略大括弧。(3)多層迴路與for( ) 相同。(4)迴圈不得交叉。應用例【 程式】 char i=0, j=0; do j=j+10; i=i+4; while (i10) i=100;【執行順序】 (1)i=0,j=0 (2)do迴圈j=10 , i=4 判斷i10為真 (3)do迴圈j=20 , i=8 判斷i10為真 (4)do迴圈j=30 , i=12 判斷i5)j=j+10; else j=j+1; i=33;執行順序 (1)j=0 , i=0 (2)i=33, j=1s
14、witch _ case指令格式 switch (變數) case 條件1:敘述1; break; case 條件2:敘述2; break; . case 條件N:敘述N; break; default:敘述N+1;break; break; 敘述A;流程圖【說明】(1)C語言程式會將 “ 變數 ” 與 “ 條件1” 到“ 條件N” 比較。 若相等,則執行該 “ 條件 ” 的敘述,否則執行default的敘述。(2)switch的變數,只能是整數或字元。(3)default 敘述,可有可無。應用例程式char c , k;c=10;switch (c) case 2:k=20; break;
15、case 5:k=50; break; case 8:k=80; break; case 10:k=100; break; case 12:k=120; break; default:k=255; break; c=88;執行順序(1)c=10,與case 10 相同,所以, k=100,離開switch case迴圈, 繼續往下執行。 (2)c=88break指令的用法 1.在switchcase指令中,扮演中斷case 敘述判斷的功能。 2.可以跳離任何迴圈for , if else , while , do-while。例 char i=0; for (; ;) i=i+1; if (i
16、= =10) break; 如果i=10,則 跳離forGoto指令指令格式: goto lebel;Example:char h, a=10;test1:a=a+10;if (aP1=P2=5指標變數與陣列的關係(二)char TAB5;char ptr;ptr=&TAB0;int datal 5;char *ptr;ptr=& datal 0;char TAB =1,4,5,7,9;char *ptr;ptr = &TAB0;結構 (structure)1結構定義1結構的資料型態與陣列的資料型態相似,都是將多個變數收 集在同一個變數名稱下的集合。2結構與陣列最大的不同點是 陣列中,每一個變
17、數 ( 元素 ) 的資料型態都必須相同;而結構中的每一個變數,都可以擁 有不同的資料型態。 2結構變數的宣告 struct 結構變數名稱 變數名稱; 【例】struct student a1; 【說明】宣告a1為 student 資料結 束變數。3結構的使用(A)結構變數typedef struct people char child; char adult; char man; char women; int total; ;struct people china; /* 宣告china變數資料型態為結構people */chinachild= 1; /* 令china變數內的元素child
18、=1 */chinawomen=10; /* 令china 變數內的元素women=10 */列舉 (enum)1列舉 (enum) 是一種資料型態的定義。2代表一群符號常數的定義的集合。3當列舉被宣告後,列舉中的符號常數就 依序 ( 由左 而右 ) 給序0 , 1 , 2 , , n的整數值。指令格式1 :不設定初始值enum 變數名稱 符號常數0,符號常數1,符號常數2,;【例】enum colors blue, red, green;【說明】經上述對列舉宣告後,blue=0 , red=1 , green=2指令格式2 設定初始值eunm 變數名稱 符號常數1=xx , 符號常數2=yy, xx, yy:整數【例】enum today hot=5 , rainny=10 , warm=20 , sunny=18;【說明】宣告列舉資料型態today,並設定符號常數初始 值如下:hot=5, rainny=10, warm=20, sunny=18指令格式3 設定第一個符號常數初始值enum 變數名稱符號常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年社区亲子武术训练协议
- 某省市街区灯光亮化景观多媒体数字化规划策划方案50
- 某省市场学第二版教学课件第三章投资银行业
- 妊娠期单纯低甲状腺素血症发生原因总结2026
- 2025北京十二中初三10月月考数学试题及答案
- 安徽就业服务指南
- 2026年春人教版八年级语文《庄子》《礼记》教案简案
- AutoC绘图建筑项目 8
- 2026道德与法治三年级知识窗 健康素养提升
- 医院普外科工作制度
- 2026年舟山绿色石化基地安全题库
- 岚图汽车招聘智能驾驶2026届春招及2027届招聘备考题库(含答案详解)
- 引流管护理的评估标准
- 意识形态保密工作制度
- 2026浙江杭州市临平区第二批招聘中小学事业编制教师160人备考题库附答案详解(综合题)
- 重庆南开中学校2025-2026学年九年级下学期3月月考语文试题(含答案)(含解析)
- 长江产业投资集团校招面笔试题及答案
- 2026年济南职业学院公开招聘高层次人才(38人)笔试参考题库及答案解析
- 2025年黄河出版传媒集团有限公司公开招聘工作人员笔试参考题库附带答案详解
- 2025年高职眼视光技术(眼镜加工)试题及答案
- AI实时导航下机器人辅助肝脏精准手术策略
评论
0/150
提交评论