作者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
1F:推 timrau:global variable initialization比main还要早执行 11/22 00:08
2F:推 old000:谢谢 那main要怎麽判断谁是它的global variable呢? 11/22 00:12
3F:→ old000:因为cmdPaser.cpp并没有被include到main.cpp里面 11/22 00:14
4F:推 timrau:linker 11/22 00:22
5F:推 ric2k1:That's why in cmdParser.h --> extern CmdParser* cmdMgr; 11/22 00:31
6F:推 old000:那是在哪设定linker要去找到CmdParse.cpp呢?Makefile? 11/22 00:47
7F:推 timrau:Makefile有说要去找cmdParser.o 11/22 09:00
8F:推 old000:谢谢你们! 11/22 14:01