#if、#ifdef、#if defined之间的区别(转载)

转自:http://www.yucoat.com/c_program/difference_if_ifdef_if_defined.html

#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

时间: 2024-10-06 23:28:53

#if、#ifdef、#if defined之间的区别(转载)的相关文章

git fetch和git pull之间的区别--转载

原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢? 每一个本地库下都有一个.git的隐藏文件夹,文件夹中的文件保存着跟这个本地库相关的信息 首先来看下其中的config文件 [plain] view plaincopy [core] repositoryformatversion = 0 filemode = false bare = false

C开发之----#if、#ifdef、#if defined之间的区别

#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”的逻辑是“真”还是“假”它只管这个程序的前面的

.NET、C#和ASP.NET三者之间的区别 [转载]

经常有同学会在.NET.C#和ASP.NET这三者之间区别不清楚,到底它们之间有什么联系呢?在这里我给大家归纳如下: 1..NET是一个平台,一个抽象的平台的概念. .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台. 本人理解的.NET核心就是.NET Framwork. .NET Framework包括两个关键组成元素: a.Common Language Runtime,公共语言运行时(CLR)-提供内在管理,代码安全性检测等功能 b..NET Framework Class

#if 与 #ifdef 之间的区别

先来看个例子: #define TARGET_LITTLE_ENDINA 1 #define TARGET_BIG_ENDINA 0 #ifdef TARGET_LITTLE_ENDINA call little endina function #else call big endina function #endif 不管把 TARGET_LITTLE_ENDINA 和 TARGET_BIG_ENDINA 定义成 0 或者 1,甚至后面不写这个 0 或者 1 ,调用的都是 little end

Ubuntu桌面版本和服务器版本之间的区别(转载)

转载自:http://blog.csdn.net/fangaoxin/article/details/6335992 http://www.linuxidc.com/Linux/2010-11/29740.htm 7天免费VPN服务:http://eaesoftvpn.azurewebsites.net/ 说道Linux想必ubuntu的大名大家早就听说,很多都是因为知道ubuntu才知道linux的.但是要提到安装ubuntu那颗就有点犯难了,因为ubuntu的版本太多了,选择哪个安装呢?这确

TCP/IP和UDP之间的区别(转载)

在分析两者之间的区别之前,我们先搞清楚这两者的关系, TCP/IP协议簇  是一种网络控制协议,简单点说就是一种网络协议,我们网络中的计算机就是通过这套协议簇来进行数据通信的.这套协议簇里面包含了很多协议,比如说DNS,HTTP,ARP,ICMP等,UDP协议也是其中的一种. 关于TCP/IP协议簇详解可以参考:http://blog.chinaunix.net/uid-30077524-id-5074334.html 1.TCP/IP协议详解 TCP/IP协议集包括应用层,传输层,网络层,网络

转载----execute、executeQuery和executeUpdate之间的区别

JDBCTM中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法executeQuery 用于产生单个结果集的语句,例如 SELECT 语句. 被使用最多的执行 SQL 语句的方法是 executeQuery.这个方法被用来执行 SELECT 语句,它几

IOS之nil、Nil、NSULL、NULL之间的区别

其实早就想研究一下nil.Nil.NULL和NSNull之间的区别,只是工作上除了nil,其它的几乎少有用到,所以一直拖到今天.有时候感觉自己越来越浮躁,对细微处的知识理解不够深入,因此这里给自己提个醒--在以后的工作当中要始终保持一种钻研的精神! 言归正传,我们来分别介绍一下这四种类型: 一.nil 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉: 或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为ni

asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别 转载自:http://blog.csdn.net/luoyeyu1989/article/details/8275866

首先,MVC和三层架构,是不一样的. 三层架构中,DAL(数据访问层).BLL(业务逻辑层).WEB层各司其职,意在职责分离. MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说,MVC把三层架构中的WEB层再度进行了分化,分成了控制器.视图.实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话:而C层直接与三层中的BLL进行对话. 所以, .net的三层结构中,并没有action这个概念. asp.net mvc 是微软新发布