define宏定义问题
小弟菜鸟,想写一个检测Linux下硬盘读写速度的C程序,在参考hdparm源码时发现有如下语句,不是很明白,分很少,还望大神不吝赐教,要是有硬盘状态检测的源码就更好了。
#define DO_FLAG(CH,VAR) CH:VAR=1;noisy=1;break
case DO_FLAG('t',do_timings);
case DO_FLAG('T',do_ctimings); 宏 硬盘速度检测
[解决办法]
宏展开后,相当于:
case 't':
do_timings=1;
noisy=1;
break;
case 'T':
do_ctimings=1;
noisy=1;
break;
[解决办法]
明白一点:宏只是简单的替换而已!
[解决办法]
gcc -E 输出 预处理后的结果看看,也可以用 Eclipse ,鼠标指向DO_FLAG 就会展开