關(guān)于全局變量的看法
在網(wǎng)上,看到一個問題 “什么是全局變量?”說實(shí)話,這個問題我想了一會兒。覺得有二義性,可能大部分人會說,只要是在堆棧外面定義的 就是全局。 我覺得,全局這個概念,我想反問提問者,是線程全局?進(jìn)程全局? 好吧,我今天想說說后者的。其實(shí),在寫hook的時(shí)候,大家都知道,進(jìn)程需要共享dll中的全局變量。沒錯,就是它,我覺得被進(jìn)程共享的 才叫全局。
- #pragma comment (linker, "/SECTION:GlobalValue,RWS")
- #include <iostream>
- #pragma data_seg("GlobalValue")
- int g_iCnt = 1000;
- #pragma data_seg()
- int PlusShow()
- {
- return printf("PlusShow %d",++g_iCnt);
- }
- int Show()
- {
- return printf("Show %d",g_iCnt);
- }
- int main(int argc)
- {
- if(argc < 2)
- {
- return Show();
- }
- PlusShow();
- getchar();
- return 0;
- }
其實(shí) 不同段放的 不僅僅是變量??梢允呛瘮?shù) 或者對象,非常靈活。看你自己怎么用了:)