精華區beta EE_DSnP 關於我們 聯絡資訊
只是想知道 在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