在wxwidgets中遇到这样的一个宏

1 /* Macro to cut down on compiler warnings. */2 #if 1 /* there should be no more any compilers needing the "#else" version */3 #define WXUNUSED(identifier) /* identifier */4 #else /* stupid, broken compiler */5 #define WXUNUSED(identifier) identifier6 #endif

还有这样的一处应用

void DoLogString(const wxChar *szString, time_t WXUNUSED(t))

看的有点懵,网上找了几篇宏定义的规则,举的例子都是带有宏体的,自己试了几个例子才明白这个宏的作用。

这个宏的作用就是把括号内的参数给屏蔽掉,因为他的宏体为空,也就相当于用空字符来替换他的参数。

在上面的这个函数体内,是看不到参数t的,也就相当于下面的定义

void DoLogString(const wxChar *szString, time_t)

很不起眼的小技巧,却让我着实烦躁了一会儿...

转载于:https://www.cnblogs.com/mian/archive/2012/03/19/2406989.html

宏定义:带参数的宏名和为空的宏体相关推荐

  1. 预处理命令 || 宏定义 || 带参数的宏定义

    #include <stdio.h>//说明:在windows 操作系统和 linux操作系统下,生成源码不一样!!!//#include <windows.h> //int ...

  2. 宏定义有无参数宏定义和带参数宏定义两种

    宏定义有无参数宏定义和带参数宏定义两种. 无参数的宏定义的一般形式为 # define 标识符 字符序列 其中# define之后的标识符称为宏定义名(简称宏名),要求宏名与字符序列之间用空格符分隔. ...

  3. c语言 宏 不定参数,C宏定义不定参数

    1.# 假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预 处理运算符,它可以把语言符号转化程字符串.例如,如 果x是一个宏参量,那么#x可以把参数名转化成相 ...

  4. 定义带参数的宏来求三角形的面积

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p241 习题7 13.三角形的面积为,其中sqrt( s * (s-a) (s-b) (s-c) ), ...

  5. c语言宏定义可变参数,C语言可变参数宏定义方法

    http://blog.csdn.net/skyflying2012/article/details/38436711 2014 在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: 1 2 ...

  6. Linux之IFS间隔符、C编程、Makefile工程文件、gdb调试、宏定义、预处理、assert和调试用特殊的宏

    1 间隔符 在shell下的for循环语句中,容器中,各个元素之间 是通过 间隔符 来分开的 默认情况下:读取 列表中的值----以 空格.TAB.换行  为间隔符 列表可以为:     常量    ...

  7. Java 方法的概述-方法的定义-带参数的方法

    方法概述 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集1.方法必须先创建才可以使用,该过程成为方法定义 2.方法创建后并不是直接可以运行的,需要手动使用后才执 ...

  8. Linux内核代码宏定义,Linux Kernel源代码中与段有关的重要宏定义

    __init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链 ...

  9. c语言宏定义多个常量,C语言几个常见的宏定义

    #line 常量 "文件名" #line 常量 出于错误判断的目的,使编译器认为下一行源代码的行号是以十进制整型常量的形式给出的,并且当前的输入文件是由该标示符命名的,如果缺少带双 ...

最新文章

  1. JSP内置对象-application
  2. 基于并联SVM支持向量机训练HOG特征提取的人员目标提取
  3. Codeigniter CRUD代码快速构建
  4. linux更改桌面壁纸的脚本,自动更换桌面壁纸的脚本,支持Ubuntu 18.04系统
  5. Java技巧:创建监视友好的ExecutorService
  6. 【HDU - 6185】Covering(矩阵快速幂优化二维dp,高斯消元,轮廓线dp打表)
  7. 换手率与股价成交量 关系
  8. 14寸笔记本电脑_纯小白预算5000到6000有什么好的笔记本电脑推荐吗?
  9. 文字不间断滚动(转)
  10. Redis学习总结(3)——Redis整合Spring结合使用缓存实例
  11. [转载] python复数类型-Python 复数属性和方法操作实例
  12. 微软官方的.net系列文档
  13. ensp(华为VRRP配置)
  14. 2-5.多进程、多线程、异步携程
  15. 应用案例 | 2011款保时捷卡宴3.0T车发动机怠速间歇性抖动故障诊断
  16. jQuery实现消息提示框
  17. C++编译器如何实现异常处理
  18. 电子科大CTF安全萌新赛部分WP
  19. ios APP性能检测
  20. 费率与利率的差别_费率是什么(利率和费率有啥区别?)

热门文章

  1. 【SpringCloud学习06】RabbitMQ
  2. 整理java中左侧补0的方法
  3. 大数据分析对供应链的影响
  4. 单击修复计算机英语怎么说,怎样单击修复计算机 如何修复呢
  5. 上海中心大厦的镇楼神器动了
  6. 信息安全服务资质二级高还是三级高?有什么区别?
  7. 《社会动物——爱、性格和成就的潜在根源》读后感及摘录(4)
  8. 微信「炸一炸」靠什么「振撼全场」?
  9. RuntimeError: Exporting the operator count_nonzero to ONNX opset version 13 is not supported. Please
  10. 每个中国人心里都隐藏着三个人