收藏 分享(赏)

云端共撰课程设计.ppt

上传人:kuailexingkong 文档编号:1195769 上传时间:2018-06-17 格式:PPT 页数:14 大小:2.42MB
下载 相关 举报
云端共撰课程设计.ppt_第1页
第1页 / 共14页
云端共撰课程设计.ppt_第2页
第2页 / 共14页
云端共撰课程设计.ppt_第3页
第3页 / 共14页
云端共撰课程设计.ppt_第4页
第4页 / 共14页
云端共撰课程设计.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、函數,010101010101010,010101010101010,010101010101010,函數的意義,有傳回值的副程式減少程式撰寫工作:把重複出現多次的一段程式獨立出成為函數易於維護增加程式的可讀性,函數的格式,傳回值型態函數名稱(參數1,參數2) 函數的本體傳回值型態:宣告其傳回值(以return指令)的資料型別。若無傳回值,則宣告其型別為 void。函數名稱:第一字不可以是數字,其餘由英文字母、數字構成。參數:函數名稱後緊接著 ( ) ,不管有無參數值,都要有 ( ),例1使用前定義函數內容,#include int addFun(int x, int y) return x

2、+ y; void main() int a = 10, b = 20, r; r = addFun(a, b); printf(%d + %d = %d n, a, b, r); ,傳回值,函數名,參數,傳回值,呼叫函數,a b r,10 20,main(),x y,10 20,addFun(),30,參數傳遞call by value 傳值呼叫,#include float multiply_Fun(float, float); int main() float a=2, b=19, c;c = multiply_Fun(a, b); printf(%f * %f = %f n, a, b

3、, c);return 0; float multiply_Fun(float x, float y) return x * y; ,讓compiler能編譯函數,在呼叫函數前須先宣告函數名,完整撰寫函數,例2函數內容定義於使用後(先宣告函數名),先指定參數個數及資料型態,Call By Value 傳值呼叫,將呼叫者的參數值複製到被呼叫者的記憶體上, 由被呼叫的函數在記憶體存取該參數。被呼叫者存取不到呼叫者的區域變數,呼叫者變數不會被被呼叫者修改。void fun(int x, int y) x = 5; y = 5; void main() int x = 0, y = 0; fun(x,

4、 y); printf(%d %dn, x, y); ,0 0,x y0 0,5 5,00A1 00A3,0001 0003,x y,全域變數global variable,變數 x 定義於函數(main or lion)之外int x;int main() int s;void lion(int y) 全域變數xWhere: 程式內所有的函數都可以存取When: 整個程式執行期間均存在,變數 x、y定義於函數內int main() int x;void lion(int y) 區域變數Where: 只有定義該變數的函數可以存取When: 呼叫(執行)該函數時產生,離開該函數就消滅。,區域變數

5、local variable,進階介紹,函數可以遞迴呼叫,因此函數內的變數消滅前可能會呼叫自己而再產生新的變數。此類變數稱為local variable或auto variable,Compiler會把它放在堆疊上。如果函數可以看到兩個以上同名的變數,則運算式內的變數會以位置最近的為準,所謂位置指的是最接近的double x = 3.14; int main( ) int x = 0; x = 100; / 此處的x是指上一行的整數x ,static改變變數的存在時間,static int x; int main() Where:此C檔內函數可看到x,其他原始程式檔都看不到When:整個程式執

6、行期間均存在int main() static int x; Where:只有定義該變數的函數(此處為main)可以存取When:整個程式執行期間均存在,extern表示此變數在別的檔案內宣告,此處只是要讓Compiler能夠翻譯相關的運算式,在此不分配空間主要在大型專案管理,有多程式設計人員撰寫程式,要用到共同的全域變數,如果每個人定義一次,則Linker會抱怨該變數宣告了一次以上。若都加上static,雖然可以產生執行檔,但大家用的不是同一個變數正確的做法是:global.h檔內定義 extern int x; global.c內定義 int x; 其他人的.c檔內 #include “g

7、lobal.h”,不必宣告 x,extern改變變數的存取範圍,巨集(Macro),前置處理器(Preprocessor)有一個#define命令,可用來取代原始程式內的某些字串#define PI 3.14159 main() double r1 = 3.0L, r2 = 5.0L; printf(Circle(3) area = %lf, 2 * PI * r1 * r1); printf(Circle(5) area = %lf, 2 * PI * r2 * r2); 就相當於將程式寫成main() double r1 = 3.0L, r2 = 5.0L; printf(Circle(3

8、) area = %lf, 2 * 3.14159 * r1 * r1); printf(Circle(5) area = %lf, 2 * 3.14159 * r2 * r2); ,巨集(Macro),define不但可以做簡單的字串取代,還可以加上參數以完成複雜的字串取代工作#define max(A, B) (A) (B) ? (A) : (B) main() int x, p=3, q=5, r=2, s=7; x = max(p+q, r+s); 上述程式相當於main() int x, p=3, q=5, r=2, s=7; x = (p+q) (r+s) ? (p+q) : (r+s); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 课程设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报