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 就会展开