当前位置:  技术问答>linux和unix

define宏定义问题

    来源: 互联网  发布时间:2017-04-29

    本文导语:  小弟菜鸟,想写一个检测Linux下硬盘读写速度的C程序,在参考hdparm源码时发现有如下语句,不是很明白,分很少,还望大神不吝赐教,要是有硬盘状态检测的源码就更好了。 #define      DO_FLAG(CH,VAR)          ...

小弟菜鸟,想写一个检测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 就会展开

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c/c++预处理命令预#define语法和例子
  • #define MODULE 什么意思啊?
  • 不解:#define SIG_ERR ((void (*)(int))-1)
  • #define包含"的問題
  • define后只有一个参数的疑问
  • 命令求解:去掉#define语句中的sizeof()
  • #define一行太长怎么办?我看代码中用了可惜gcc 编译时出错了
  • #define DEFAULT_CMDLINE
  • but is not defined as a type
  • #define MAX_LOCKDEP_SUBCLASSES 8UL 这个8UL是什么意思呢 ?
  • mysql iis7站长之家
  • #define __MODULE_PARM_TYPE疑問
  • 内核中#define LBS_DEB_LL(grp, grpnam, fmt, args...)意义?
  • 请问宏#define SYMBOL_NAME_STR(X) #X干什么用啊
  • makefile里面如何运用 #define
  • ThinkPHP模板判断输出Defined标签用法详解
  • # define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, 0, { 0, 0 } } } 看不懂
  • #define send _send 那么_send是在哪里实现的呢?minix源代码
  • #define PCI9054_MSG(fmt, args...) printK("kERN_WARNING:"fmt,##args)
  • symbol gzopen, version libmysqlclient_15 not defined in file libmysqlclient.so.1
  • C语言中#define与typedef的互换细节详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,