作者old000 (千)
看板EE_DSnP
標題[問題] 關於cmdMgr
時間Wed Nov 22 00:07:19 2006
只是想知道
在main()裡面有這一行
if (!
initCommonCmd() || !
initCalcCmd())
return 1;
而在 initCommonCmd() 和 initCalcCmd() 中都會用到 cmdMgr->regCmd(.....)
可是 cmdMgr 的 declaration 是放在 cmdParser.cpp 裡面
但我從 main.cpp 的 header files 裡面往上trace都找不到 cmdParser.cpp
也就是說 如果電腦真的是從main開始一行一行執行的話
應該不會call到
CmdParser* cmdMgr = new CmdParser("mcalc> "); 這一行
那為什麼可以直接拿cmdMgr來用呢?
--
問題很冗長orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.220.238
推 timrau:global variable initialization比main還要早執行 11/22 00:08
推 old000:謝謝 那main要怎麼判斷誰是它的global variable呢? 11/22 00:12
→ old000:因為cmdPaser.cpp並沒有被include到main.cpp裡面 11/22 00:14
推 timrau:linker 11/22 00:22
推 ric2k1:That's why in cmdParser.h --> extern CmdParser* cmdMgr; 11/22 00:31
推 old000:那是在哪設定linker要去找到CmdParse.cpp呢?Makefile? 11/22 00:47
推 timrau:Makefile有說要去找cmdParser.o 11/22 09:00
推 old000:謝謝你們! 11/22 14:01