作者halajohn (偉偉)
看板CSSE
標題Re: 請問c++ include標頭檔的問題
時間Wed Jun 29 16:36:41 2005
※ 引述《ikjhyu (還沒想到)》之銘言:
: 最近在試一些c++的東西
: 發現一個奇怪的東西
: 如下面程式
: #include <stdio.h>
: void main()
: {
: printf("abc\n");
: }
: 程式要使用printf() 所以必須include stdio.h檔
: 而他會去呼叫printf.c
: 但是打開 stdio.h檔
: 卻到處找不到他有include的敘述
: 裡面都是一些函式原型的宣告
: 而沒有真正的函式內容檔
: 請問有人知道為什麼這樣程式可以執行嗎?
: 而且把stdio.h檔的內容貼到
: 程式裡面再把include敘述拿掉
: 也可以正常執行...
: 有點奇怪...
因為 printf 那一行在 runtime 的時候是 jump 過去執行
所以 compiler 只需要知道 function 的 prototype 就可以進行推參數以及
抓 return value 的動作,
所以不需要 function definition.
只要看得到 prototype 即可.
C++ 比較龜毛, 一定要看到 prototype 才行, C 好像不用.
懶的試驗了... 啪鞋 :)
--
Wei
ARM 模擬器 - ARMware 0.5.0 發佈
http://www.csie.ntu.edu.tw/~r88052/ARMware/tw/index.php
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.92.60.106