作者GooLoo (平凡)
看板C_and_CPP
標題[問題] stdio
時間Sat Aug 22 09:59:58 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
devc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
main.c內有include stdio.h
我又建了一個one.c
在裡面寫了一個函數test, test裡有用到printf
run後有秀出printf的結果
我的問題是........
one.c為什麼不用include 就可以用printf呢?
及....不用在前面宣告函式一次(void test(void);)
編譯器沒報錯呢?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
//main.c
#include <stdio.h>
int main(int argc, char *argv[]) {
test();
return 0;
}
----------------
//one.c
void test(void){
printf("1234");
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.178.63
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440208800.A.292.html
推 LPH66: 舊版 C 語言在沒宣告時預設為不檢查參數回傳 int 08/22 10:10
→ LPH66: printf 正好對得上所以沒事; test 原本也是這樣, 只是 08/22 10:10
→ LPH66: 這裡沒回傳值所以沒什麼差 08/22 10:11
printf對得上是指?
one.c沒有stdio.h 就可用printf是預設有stdio嗎?
您的意思是 如果int test(void),就會報錯?
→ bibo9901: 沒宣告直接使用時compiler會假設成 int printf(...) 08/22 11:46
→ bibo9901: "剛好"和 stdio.h & libc 裡面的 printf 一樣 08/22 11:47
原來如此.........小懂了!
※ 編輯: GooLoo (114.25.178.63), 08/22/2015 11:52:37