首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个超简单的宏定义

2013-11-20 
求助:一个超简单的宏定义。#define UNUSED(x) ((x)(x)) 这个语句为什么要这样写呢?一般什么情况下才这样写

求助:一个超简单的宏定义。
#define UNUSED(x) ((x)=(x)) 这个语句为什么要这样写呢?一般什么情况下才这样写?先谢谢了。 宏定义
[解决办法]
避免一些编译器的警告。
对于未使用的变量,很多编译器都会警告“未使用的变量x”。 
[解决办法]


避免一些编译器的警告。
对于未使用的变量,很多编译器都会警告“未使用的变量x”。

[解决办法]
引用:
Quote: 引用:

避免一些编译器的警告。
对于未使用的变量,很多编译器都会警告“未使用的变量x”。 

但是它没有赋值,这样它自己赋值给自己,这样不会有问题吗?


这就是赋值了
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

避免一些编译器的警告。
对于未使用的变量,很多编译器都会警告“未使用的变量x”。 

但是它没有赋值,这样它自己赋值给自己,这样不会有问题吗?

这就是赋值了

+1
虽然赋的值无法预料,但就是赋值。只要你不直接用这些变量就没事了,主要就是消除编译器警告。
[解决办法]
引用:
Quote: 引用:

可以跑下 UNUSED(x)+1看结果,反正不这么用
#define UNUSED(x) ((x)=(x)) 
#define UNUSED(x) (x)=(x)


运行了一下,这两种用法没什么差别。

#define UNUSED1(x) ((x)=(x)) 
#define UNUSED2(x) (x)=(x)
int iBuf = 0;
UNUSED1(iBuf)+1;
cout<<iBuf<<endl;
UNUSED2(iBuf)+1;
cout<<iBuf<<endl;

热点排行