设为首页 加入收藏

TOP

C中的define 特殊用法
2014-11-23 19:55:33 来源: 作者: 【 】 浏览:10
Tags:define 特殊 用法

\


今天,我的一个同学告诉我了一个define的另一用法,之前我是真心不知啊!非常感谢他愿意告诉我,他愿意与我分享,我又怎木能”吃独食“呢!哈哈!所以我就想把他记录下来,分享给各位看客,同时也使自己不会忘记。好了,开始了!!


首先来看一个例子:

\

这个很平常,大家都会用,但如果是下面这样使用,可以吗?

\

好,让我们来编译一下,看是什么情况。< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICA8aW1nIHNyYz0="https://www.cppentry.com/upload_files/article/45/1_0owdh__.jpg" alt="\">

再看一下,宏展开后是怎木样的! (宏展开:$: gcc -E -P tt.c > file, 过后打开file文件就会看见)

\

编译时 发现错误,重定义了 i 变量。这是为什么?

因为定义的宏是在编译时就在调用处展开了,当两个宏定义FUN()在同一作用域中调用时,就会发生变量重定义了。

那么有什么方法可以使这种调用正确呢?请看下面:

\

经编译,没法现错误,为什么?我们再来看看展开后的宏:

没发生错误,是因为在这里产生了两个不同的变量,i1,i2,。





】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2014川大复试c语言 下一篇C 基础数据结构---队列 ADT

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: