IOS開發知識(六)

來源:互聯網
上載者:User

標籤:知識   開發   ios   

  1. 什麼是函數

  • 任何一個C語言程式都是由一個或者多個程式段(小程式)構成的,每個程式段都有自己的功能,我們一般稱這些程式段為“函數”。所以,你可以說C語言程式是由函數構成的。

  • 比如你用C語言編寫了一個MP3播放器程式,那麼它的程式結構如所示:

 


  1. 函數的定義

  1. 定義函數的目的

  • 將一個常用的功能封裝起來,方便以後調用


  1. 定義函數的步驟

  • 函數名:函數叫什麼名字

  • 函數體:函數是幹啥的,裡麵包含了什麼代碼


  1. 格式

  • 固定格式(很多語言的函數都是這麼寫的)

傳回值類型  函數名(形式參數列表) 

{

 函數體

}

  • 舉例

定義一個函數,計算兩個整數的和

sum(int a, int b) 

{

int c = a + b;

}


  1. 函數調用

  • sum(10, 11); 引出傳回值

  • 說明函數的調用過程

  • 簡述return的作用


  1. 函數的參數

  1. 形參和實參的基本概念

  2. 形參個數和實參一致:sum(10, 11, 12)

  3. 參數的傳遞是值傳遞

  4. 參數名不能跟函數內的局部變數同名

  5. 函數可以沒有參數:設計一個函數返回PI


  1. 函數的傳回值

  1. 傳回值的基本概念、return的作用

  2. void

  3. return

  • void可以省略return

  • 可以多次使用return

  • return後面不能有其他語句

  1. 函數的弱文法

  • 如果沒有寫傳回值類型,預設是int

  • 如果寫了傳回值,可以不返回

  • 調用一個沒有定義過的函數


  1. 定義函數的步驟

  1. 明確函數作用,起一個有意義的函數名稱

  2. 明確函數的參數和傳回值

  3. 舉例:

  • 求兩個整數的和

  • 列印一條橫線

  • 列印N條橫線


  1. 函數注意

  • 不能嵌套定義函數

  • 死迴圈調用,自己調用自己

  • 不能重複定義、可以重複聲明


  1. 函數的補充

  1. main函數

  • 傳回值:0,正常退出;1,異常退出

  1. printf函數

  • #include

  • 傳回值:字串的長度


  1. 習題

  1. 編寫一個函數double avr(int a, int b),計算a和b的平均值

  2. 編寫一個函數int pows(int base, int n)返回base的n次方

  3. 編寫一個函數int pieAdd(int n),計算1+2+3+……+n的值並返回。比如pieAdd(3)的傳回值是1+2+3=6


  1. 函數的聲明

  1. 函數的定義順序

  2. 函數的聲明作用:聲明和定義,類似於***和人的關係,編譯買機票、連結登機 

  3. 只有函式宣告、沒有定義,編譯警告、連結報錯


  1. .h檔案和.c檔案的分工

  1. 單檔案的壞處

  • 一個檔案的內容太多,不利於閱讀、調試

  • 多人修改同一個檔案出問題

  • 公司裡面是團隊合作


  1. 將sum函數抽取到另一個.c檔案中

  • 先直接調用sum函數,編譯警告、連結main.c錯誤

  • #include “sum.c” , 編譯連結main.c,運行成功(畫圖分析.o檔案中的東西)

  • 如果avr.c中使用sum.c,編譯連結main.c,運行程式(畫圖分析出錯原因)


  1. 在其他檔案中聲明sum函數

  • int sum(int,int);  

  • 編譯連結main.c

  • 編譯連結sum.c

  • 編譯連結main.c  sum.c,運行成功

  • avr.c利用一樣的方法


  1. 將int sum(int,int)抽取到另外一個檔案中

  • 不抽取聲明的壞處:增加新的函數了

  • 抽取到.c檔案中?開發工具會將所有的.c進行編譯連結

  • 抽取到.h檔案中


  1. 抽取步驟總結

  • .c檔案寫函數的定義

  • .h檔案寫函數的聲明

  • 要想用我的函數,請包含我的.h檔案

  • 好處分析


  1. #include

  1. 預先處理指令簡介

  2. #include的作用

純粹是檔案拷貝

  1. #include <stdio.h>

  • stdio.h中有什嗎?連結的時候做了什麼事情

  • <>和””的區別

  1. #include的路徑問題

  • 預設是同路徑,其他問題以後再討論




IOS開發知識(六)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.