[問題] C語言header file新手問題
Hi 大家好,我想問一個header file很基礎的問題
我原先一直以為compiler在產生object code時(用-c)
一定要先看到function prototype,否則會compile error
結果我今天試了一下
才發現原來不用?
是我觀念搞錯了嗎?
舉例來說
main.c
#include <sdtio.h>
int main(void) {
abc();
}
abc.c
#include <stdio.h>
void abc() { printf("hi"); }
兩個檔分別compile 再link起來就可以執行
如果是這樣的話 那在c語言裡include header file有什麼好處呢?
剛才試了一下c++,發現compiler在產生object File時如果有用到class member
那一定要看到class 的定義,所以include .h是必要的
那如果c不需要看到function的prototype,那不就完全不用include
任何header file了?
打到一半想說竟然連.h都不用include了,那乾脆把#include <stdio.h>也拿掉
int main(int argc, char**argv)
{
int i;
for (i = 0; i < 10; ++i) {
printf("%d\n", i);
}
return 0;
}
沒想到只是有warning msg,還是可以執行...
因為code很短 就沒有用貼程式碼網站了。
煩請大家解惑 Thx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.67.187
推
10/23 20:49, , 1F
10/23 20:49, 1F
推
10/23 21:47, , 2F
10/23 21:47, 2F
→
10/23 21:47, , 3F
10/23 21:47, 3F
→
10/23 21:48, , 4F
10/23 21:48, 4F
推
10/24 00:42, , 5F
10/24 00:42, 5F
→
10/24 05:08, , 6F
10/24 05:08, 6F
→
10/24 05:09, , 7F
10/24 05:09, 7F