`
javababy1
  • 浏览: 1251079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一个比较有意思的宏

 
阅读更多

#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))

这个宏为编译时判断e是否为0

假如e等于非0值,则!(e)0,则!!(e)1。再struct{int:-1}则会编译出错。

假如e等于0,则!(e)1,则!!(e)0。再struct{int:-0},实际等价于struct{int:0}则编译通过。

分享到:
评论

相关推荐

    Excel使用窗体和自定义菜单的例子

    这是一个使用Excel的Vba做了一个登陆窗口,默认用户sun,密码是空,另外,请大家注意,当你点击不同的sheet页的时候,注意菜单的变化,比较有意思。 打开的时候会提示宏的安全性,请放心,没有病毒!

    12个C/C++趣味小程序

    这两个语言都强调内存管理,程序员需要手动分配和释放内存,这在学习过程中是非常重要的一个环节。 这些趣味小程序可能包括但不限于以下几个方面: 1. **数字游戏**:例如猜数字游戏,其中程序会生成一个随机数,...

    记事本 (汇编写的源代码)

    标题 "记事本 (汇编写的源代码)" 暗示了这是一个使用汇编语言编写的简单文本编辑器程序,通常称为“记事本”。在这个项目中,开发者选择使用低级的汇编语言来实现这个常见的应用程序,这在现代编程中是相对少见的...

    基于C语言开发的小型MCU前后台系统设计源码

    该项目的源码包包含787个文件,其中C源文件339个,头文件314个,以及宏定义文件和其他类型文件,构成了一个较为复杂的小型系统。文件名称列表中包含“JSnet”、“SRTnet”、“LICENSE”、“demo_code”、“fun_...

    zxing.java源码解析-iOSRepository:Github-iOS备忘

    zxing.java源码解析 fork from: ... 一系列宏定义 挺有意思 又一系列扩展。。。 一些常见功能的扩展库 将长方法简化的Category 几个简单好用的Cageg

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    由于oSIP是比较底层的SIP协议栈实现,新手较难上手,而官方的示例大都是一些伪代码,需要有实际的例子程序参考学习,而最好的例子就是同样官方发布的oSIP的扩展开发库exosip2,使用exoSIP可以很...

    鼠标开梅花

    excel 做的,鼠标开梅花,很有意思,送给大家,祝您开心

    “Hello world!”的N种写法

    其中,__FILE__ 代表当前的源文件的文件名,嗯,对了,如果我们让这个程序读取自己的源文件,不就可以做一个很有意思的“Hello world!”了么? 6. 使用C++的iostream写的“Hello world!” 使用C++的iostream输出...

    好用的算法的代码

    RC4算法的核心是通过一个称为“状态数组”或“S盒”的256个字节的数组进行操作。初始化阶段,算法使用密钥对S盒进行重新排列。这个过程称为密钥流生成器(Key Scheduling Algorithm, KSA)。之后,算法通过PRGA...

    C语言程序设计教程电子教案

    C语言是一种广泛应用于系统编程、嵌入式开发、软件工程等多个领域的高级编程语言。它的语法简洁明了,灵活性高,适合初学者入门,也深受专业程序员喜爱。本教程“C语言程序设计教程电子教案”旨在为学习者提供全面且...

Global site tag (gtag.js) - Google Analytics