程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 忽略語法細節,從整體上理解函數

忽略語法細節,從整體上理解函數

編輯:C語言基礎知識
從整體上看,C語言代碼是由一個一個的函數構成的,除了定義和說明類的語句(例如變量定義、宏定義、類型定義等)可以放在函數外面,所有具有運算或邏輯處理能力的語句(例如加減乘除、if else、for、函數調用等)都要放在函數內部。

例如,下面的代碼就是錯誤的:
#include <stdio.h>

int a = 10;
int b = a + 20;

int main(){
    return 0;
}
int b = a + 20;是具有運算功能的語句,要放在函數內部。

但是下面的代碼就是正確的:
#include <stdio.h>

int a = 10;
int b = 10 + 20;

int main(){
    return 0;
}
int b = 10 + 20;在編譯時會被優化成int b = 30;,消除加法運算。

在所有的函數中,main() 是入口函數,有且只能有一個,C語言程序就是從這裡開始運行的。

C語言不但提供了豐富的庫函數,還允許用戶定義自己的函數。每個函數都是一個可以重復使用的模塊,通過模塊間的相互調用,有條不紊地實現復雜的功能。可以說C程序的全部工作都是由各式各樣的函數完成的,所以也把C語言稱為函數式語言。

標准C語言(ANSI C)共定義了15 個頭文件,稱為“C標准庫”,所有的編譯器都必須支持,如何正確並熟練的使用這些標准庫,可以反映出一個程序員的水平。
  • 合格程序員:<stdio.h>、<ctype.h>、<stdlib.h>、<string.h>
  • 熟練程序員:<assert.h>、<limits.h>、<stddef.h>、<time.h>
  • 優秀程序員:<float.h>、<math.h>、<error.h>、<locale.h>、<setjmp.h>、<signal.h>、<stdarg.h>

以上各類函數不僅數量眾多,而且有的還需要硬件知識才能使用,初學者要想全部掌握得需要一個較長的學習過程。我的建議是先掌握一些最基本、最常用的函數,在實踐過程中再逐步深入。由於課時關系,本教程只介紹了很少一部分庫函數,其余部分讀者可根據需要查閱C語言函數手冊,網址是 http://www.cplusplus.com。

還應該指出的是,C語言中所有的函數定義,包括主函數 main() 在內,都是平行的。也就是說,在一個函數的函數體內,不能再定義另一個函數,即不能嵌套定義。但是函數之間允許相互調用,也允許嵌套調用。習慣上把調用者稱為主調函數,被調用者稱為被調函數。函數還可以自己調用自己,稱為遞歸調用。

main() 函數是主函數,它可以調用其它函數,而不允許被其它函數調用。因此,C程序的執行總是從 main() 函數開始,完成對其它函數的調用後再返回到 main() 函數,最後由 main() 函數結束整個程序。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved