tbwshc

关于全局变量的看法

在网上,看到一个问题 “什么是全局变量?”说实话,这个问题我想了一会儿。觉得有二义性,可能大部分人会说,只要是在堆栈外面定义的 就是全局。 我觉得,全局这个概念,我想反问提问者,是线程全局?进程全局? 好吧,我今天想说说后者的。其实,在写hook的时候,大家都知道,进程需要共享dll中的全局变量。没错,就是它,我觉得被进程共享的 才叫全局。

 

Cpp代码  
  1. #pragma comment (linker, "/SECTION:GlobalValue,RWS")   
  2.   
  3. #include <iostream>   
  4.   
  5. #pragma data_seg("GlobalValue")   
  6. int g_iCnt = 1000;   
  7. #pragma data_seg()   
  8.   
  9. int PlusShow()   
  10. {   
  11.    return printf("PlusShow %d",++g_iCnt);   
  12. }   
  13.   
  14. int Show()   
  15. {   
  16.   return printf("Show %d",g_iCnt);   
  17. }   
  18.   
  19. int main(int argc)   
  20. {   
  21.   if(argc < 2)   
  22.   {   
  23.       return Show();   
  24.   }   
  25.      
  26.   PlusShow();   
  27.   getchar();   
  28.   return 0;   
  29. }  


其实 不同段放的 不仅仅是变量。可以是函数 或者对象,非常灵活。看你自己怎么用了:)

posted on 2012-08-13 15:55 chen11-1 阅读(1503) 评论(0)  编辑  收藏