TOP

C語言的作用域/namespace分析
2014-11-23 20:29:13 】 瀏覽:9945
Tags:

  在csdn上看到一段代碼。覺得很有意思,于是便自己動動手分析分析。


  這是用于分析C語言中的作用的一段代碼,值得研究研究。


  代碼中calloc之后并沒有free掉,這是個不好的習慣. :)


  好吧优乐棋牌app下载优乐棋牌app下载,我們從代碼開始:


  原始代碼


  Code


  1 #include


  2 #include


  3


  4 int x(const int int_a) {return int_a;}


  5


  6 struct x


  7 {


  8 int x;


  9 };


  10


  11 #define x(x) x


  12


  13 int main(int argc, char *argv[])


  14 {


  15 int *x = calloc(1, sizeof x);


  16


  17 x: (((struct x *)x)->x) = x(5);


  18


  19 printf("%p\n", ((struct x *)x)->x);


  20


  21 return 0;


  22 }


  23


  [0] 變量名(包括指針名,函數名)和自定義類型名(struct)存在于不同namespace.所以b不會和a,c沖突


  Code


  1 int x(const int int_a) {return int_a;}