作者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