在网上,看到一个问题 “什么是全局变量?”说实话,这个问题我想了一会儿。觉得有二义性,可能大部分人会说,只要是在堆栈外面定义的 就是全局。 我觉得,全局这个概念,我想反问提问者,是线程全局?进程全局? 好吧,我今天想说说后者的。其实,在写hook的时候,大家都知道,进程需要共享dll中的全局变量。没错,就是它,我觉得被进程共享的 才叫全局。 
 
- #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;   
 - }  
 
 #pragma comment (linker, "/SECTION:GlobalValue,TBRWS")
#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;
}
其实 不同段放的 不仅仅是变量。可以是函数 或者对象,非常灵活。看你自己怎么用了:)