#if、#ifdef、#if defined之间的区别【转】

简介: 转自:http://quanminchaoren.iteye.com/blog/1870977 #if的使用说明 #if的后面接的是表达式 #if (MAX==10)||(MAX==20) code... #endif 它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!) #if defined的使用 #if后面接的是一个宏。

转自:http://quanminchaoren.iteye.com/blog/1870977

#if的使用说明

#if的后面接的是表达式

#if (MAX==10)||(MAX==20)
 code...
#endif

它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)

#if defined的使用

#if后面接的是一个宏。

#if defined (x)
    ...code...
#endif

这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定义了x这个宏,那么,编译器会编译中间的…code…否则不直接忽视中间的…code…代码。

另外 #if defined(x)也可以取反,也就用 #if !defined(x)

#ifdef的使用

#ifdef的使用和#if defined()的用法一致
#ifndef又和#if !defined()的用法一致。

最后强调两点:
第一:这几个宏定义只是决定代码块是否被编译!
第二:别忘了#endif

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
监控 jenkins Java
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
Jenkins部署及使用(安装maven配置阿里云镜像、git工具)
|
存储 SQL 缓存
阿里华为等大厂的本地缓存、分布式缓存解决方案详解(中)
阿里华为等大厂的本地缓存、分布式缓存解决方案详解
511 0
|
前端开发 容器
一文看透 Module Federation 上
一文看透 Module Federation
1631 2
一文看透 Module Federation 上
|
关系型数据库 MySQL Java
myeclipse连接MySQL数据库操作
myeclipse连接MySQL数据库操作
myeclipse连接MySQL数据库操作
|
人工智能 物联网 5G
如何从零设计一种物联网组网协议
物联网的基础是将万物连接起来,他是如何连接起来的,就是通过物联网的通信和组网协议。本文将从物联网通信协议现状分析入手,讲述如何从零设计一种物联网组网协议。
如何从零设计一种物联网组网协议
|
消息中间件 Kafka Windows
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
812 0
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
|
前端开发 JavaScript 关系型数据库
MacOs M1 芯片分布式搭建 Nginx+PHP+MySQL和多站点域名访问
一、安装Nginx 问题:Mac 在安装nginx之前记得把原本的apache2给卸载删除了,要不然后期会出现端口号被占用,或者有时候nginx用不了
|
iOS开发 MacOS
MAC OS dmg文件转换为ISO
MAC OS dmg文件转换为ISO
553 0
MAC OS dmg文件转换为ISO
|
XML Android开发 数据格式
Android RatingBar的基本使用和自定义样式
Android RatingBar的基本使用和自定义样式
Android RatingBar的基本使用和自定义样式
|
弹性计算 Oracle Ubuntu
阿里云新用户免费体验云服务器ECS介绍,可试用1个月!
阿里云新用户免费体验云服务器ECS,申请阿里云免费云服务器仅简单三步:①.完成实名认证-②.选择试用配置-③.ECS控制台使用。
3789 0
阿里云新用户免费体验云服务器ECS介绍,可试用1个月!