講有關變數初初始化,
內容還不錯..
#include
int alpha(void)
{
return 20;
}
int i = alpha(); //dynamic intialization
int main()
{
printf("i = %d",i);
return i;
}
i是一個glocal變數,其初始值是由一個function提供的,
經過測試得到結果為0,
而非預期的20.
原因是系統直接由main(entry point) call進來,
並未真正有機會去呼叫其他初始化的function,
必須改由CRT系列的entry point,
main對應的就是mainCRTStartup,
詳細table可參閱原文.
原文參考:
http://blogs.msdn.com/b/ce_base/archive/2008/06/02/dynamic-initialization-of-variables.aspx

沒有留言:
張貼留言