1、怎么會沒有函數(shù)體呢?你哪看的? 函數(shù)體都封裝在lib文件里面了。 你include 的只是一個頭文件,頭文件是哪來聲明的。
10年積累的成都網(wǎng)站設計、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有西烏珠穆沁免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
2、C語言是通過printf()函數(shù)和scanf()函數(shù)來進行輸入和輸出。printf()格式化輸出函數(shù),C語言標準庫函數(shù),在 stdio.h 中定義。一般用于向標準輸出設備按規(guī)定格式輸出信息。
3、在C標準函數(shù)庫中提供了一些輸入輸出函數(shù),例如,printf函數(shù)和scanf函數(shù)。在使用他們時,千萬不要誤認為他們是C語言提供的“輸入輸出語句”,printf和scanf不是C語言的關(guān)鍵字,而只是函數(shù)的名字。
1、這些函數(shù)是有函數(shù)體的,不過函數(shù)體的位置在對應的庫文件中,頭文件中只有函數(shù)原型聲明……cdecl是一種調(diào)用約定,表示一種特定的參數(shù)和返回值傳遞方式,在跨文件(甚至跨語言)調(diào)用函數(shù)的時候才需要指定。
2、_cdecl是C和C++程序的缺省調(diào)用方式。每一個調(diào)用它的函數(shù)都包含清空堆棧的代碼,所以產(chǎn)生的可執(zhí)行文件大小會比調(diào)用_stdcall函數(shù)的大。函數(shù)采用從右到左的壓棧方式。VC將函數(shù)編譯后會在函數(shù)名前面加上下劃線前綴。
3、__cdecl一般不是讓你直接用的,而是給編譯器用的。
4、多一個 k 不會有錯誤,程序頂多不輸出而已。如果少些一個的話,那肯定出問題。因為 C 標準庫函數(shù)的調(diào)用約定是 __cdecl。
頭文件的函數(shù)的實現(xiàn)文件都在其他文件中,比如VC++就是在那些.LIB和.DLL文件中。這樣可以把實現(xiàn)文件轉(zhuǎn)化為LIB和DLL,就可以保護你的源代碼。而只留出來頭文件,給別人看,別人用頭文件作為接口,調(diào)用LIB或者DLL中的函數(shù)。
代碼的運行是自上到下的。如果你的函數(shù)在被調(diào)用的地方的上面。那么你就可以不需要聲明。反之,如果你的函數(shù)在調(diào)用處的下面。
這個未聲明只是警告,是一種提醒,有些時候不會影響編譯,應該盡量可能避免。以上代碼把第11行的內(nèi)容復制在第1行、第2行之間,末尾再加個分號(;),就可以了,這就是函數(shù)的聲明。
(1)一種是需要建立存儲空間的(定義、聲明)。例如:inta在聲明的時候就已經(jīng)建立了存儲空間。(2)另一種是不需要建立存儲空間的(聲明)。例如:externinta其中變量a是在別的文件中定義的。
所以可以把函數(shù)聲明放在一個頭文件中,使用的時候,包含這個頭文件就可以了。有時候,自己寫的函數(shù)需要給別人用,比如商業(yè)用途。