[問題] C語言省略函式宣告仍能正常執行?

看板C_and_CPP作者 (達)時間10年前 (2014/01/11 03:22), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Win7+Codeblocks 問題(Question): 翻了兩本書 都是說main在呼叫函式前,必須先有函式宣告 才能認得函式 可是我發現範例如把函式宣告拿掉 還是都可以正常執行 為什麼會這樣呢? thank 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> //這裡如果省略max函數的宣告 int main(void) { int num1, num2, ans; printf("請輸入第1個整數:\n"); scanf("%d",&num1); printf("請輸入第2個整數:\n"); scanf("%d",&num2); ans = max(num1, num2); printf("最大值為%d。\n", ans); system("pause"); return 0; } int max(int x, int y) //max函數的定義 { if (x > y) return x; else return y; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.106.192 ※ 編輯: dharma 來自: 118.163.106.192 (01/11 03:31)

01/11 04:48, , 1F
存成 .cpp 時就不行,存成 .c 好像真的可以。
01/11 04:48, 1F

01/11 04:48, , 2F
不過,我想最好還是宣告一下比較好。
01/11 04:48, 2F

01/11 05:00, , 3F
精華區有解答了 請參閱 z-3-7-8
01/11 05:00, 3F

01/11 12:29, , 4F
c可以,c++不行
01/11 12:29, 4F

01/12 06:17, , 5F
看這個漫畫PPT《Deep C》的第13頁:C允許隱式宣告C++不允
01/12 06:17, 5F


01/12 20:33, , 7F
這只能在 C89 用吧,C99 以後就一定要宣告了
01/12 20:33, 7F

01/12 20:34, , 8F
而且回傳不是 int 的話會出奇怪的事情......
01/12 20:34, 8F
文章代碼(AID): #1Iq4XPtZ (C_and_CPP)