每一個函式的完整建構及呼叫會涉及一個C語言程式碼檔(.C檔)。
一個宣告函式原型的C語言前置碼檔(.H檔),
而呼叫使用函式時,則有另外一個C語言程式碼檔(.C檔),在呼叫之前,會先引入所要呼叫使用函式的(.H檔),完成原型宣告,再呼叫函式。
有了函式原型,前置碼檔square.h,以及引入機制#include square.h 的支援,讓程式的C語言的設計,可以分段實施,並得以重覆使用。但有許多但有許多小程式,分割寫作好像有一點多餘,因此C語言,也允許呼叫函式,函式,以及函式原型,通通放在同一個C語言程式檔。
其實大部份的C語言書本,均只介紹上框中的寫法,因為畢竟用於說明的範例程式都不會太大。唯,這樣的說明方式可能會為學生留下一個『為什麼要多此一舉,在函式之外又要宣告函式原型』的疑問。
隔離不同函式之間變數的讀寫
為避免不同函式內同名稱變數間產生混淆,以及變數佔用太多的記憶體,C語言對於變數的可視範圍,以及常駐性做了一些規範,以便限制不同函式之間變數的互相讀寫,並適時釋放不再使用變數所佔的記憶空間,細節透過變數的可視範圍以及是否常駐可更清楚的說明。另一方面函式之間仍必須讓某些數值能夠互相傳遞,因此C語言也提供了數種函式間變數內容互傳的機制,詳細會在變數內容交換方式中說明。