#if定义

#if和#endif是一组同时使用的,叫做条件编译指令。#if与#define、#include等指令一样是由预处理器这个强大的工具处理的,预处理器可以在编译前处理c程序。

#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

C语言中#if的使用相关推荐

  1. c语言中struct和c++中class实例对比

    前言 实现游戏中简单的打怪升级的功能 c语言中的struct #include <stdio.h>typedef void(*Train)(struct player*, int); ty ...

  2. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  3. C语言中“野指针”、“悬空指针”是什么?

    目录 1."野指针"(wild pointer) 2."悬空指针"(dangling pointer) 1."野指针"(wild point ...

  4. c+语言+null,C/C++语言中NULL、'\0’和0的区别

    NULL.'\0'和0的值是一样的,都是0,不过它们的表现形式不一样: 1. NULL: 即空指针,不过在C和C++中并不一样.在VS 2013的库文件string.h中可以看到如果定义. 1 /* ...

  5. 关于C语言中的malloc和free函数的用法

    一.malloc()和free()的基本概念以及基本用法: 1.函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针 ...

  6. python global函数_如何使用python语言中的global关键字获取函数值

    在python语言中,如果在函数外层定义了一个全局变量a,函数内部又有一个同名的局部变量,想要这个全局变量的值改成为局部变量的值,可以使用global.下面利用一个实例说明如何实现这个场景,操作如下: ...

  7. c语言中的if语句_If ... C中的其他语句解释

    c语言中的if语句 Conditional code flow is the ability to change the way a piece of code behaves based on ce ...

  8. C 语言中 void* 详解及应用介绍

    void 在英文中作为名词的解释为 "空虚.空间.空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针" ...

  9. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...

    [判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...

  10. 8位alu运算器(vhdl语言)_C语言中signed char类型,能表示-128到127,为什么负数多一位?...

    初学者在学习C语言,谈到不同数据类型时,一般都能理解 unsigned 和 signed 的区别,无非就是有无符号而已.但是对于 signed 数据类型的数据范围,初学者却常常会感到迷惑. 对于 si ...

最新文章

  1. 公司inur php id_,PHP——个人信息管理系统
  2. [云炬学英语]每日一句2020.9.3
  3. C++性能优化-字符串的优化
  4. 关于MYSQL 的 AUTO-INC Locks
  5. hibernate中的id特殊属性hilo剖解(多用于继承关系)
  6. 【POI2011】LIZ-Lollipop 【构造】
  7. Uber提出有创造力的POET:自行开发更困难环境和解决方案
  8. 开发了一款chrome扩展程序
  9. 关于RUP的一点见解,针对于近期的面向对象方法课程
  10. python绘制单线图_教你快速利用CAD绘制管道单线图.pdf
  11. 电脑硬件基础知识科普
  12. 大数据开发超高频面试题!大厂面试必看!包含Hadoop、zookeeper、Hive、flume、kafka、Hbase、flink、spark、数仓等
  13. Pycharm设置快捷键放大缩小字体
  14. 提升社群转化率?3大步骤、6大技巧详解
  15. JDK8与JDK9新特性学习
  16. 操作系统存储器管理管理试验
  17. 用for循环打印乘法口诀表
  18. 虚拟机无法启动提示give root password for maintenance的多种解决方法
  19. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第2章:FLOW CONTROL
  20. 我眼中的博客MVB与投票 1

热门文章

  1. ECCV2020 | 论文阅读——Arbitrary-Oriented Object Detection with Circular Smooth Label
  2. 《Python语言程序设计》王恺 王志 李涛 机械工业出版社第7章 I/O编程与异常 课后习题答案【强烈推荐】
  3. matplotlib绘制电子鼻传感响应曲线
  4. 专门为u盘设计的linux系统
  5. 开到370多家线下门店后,特斯拉掉头主攻线上是好事吗?...
  6. 狂风暴雨——雨过天晴篇:数据流层Namsara发布
  7. 景甜种甜、雨昕助攻,聚划算垂类借势攻擂
  8. wps论文参考文献变动时自动更新
  9. 7-3 表达式求值_1 (20分) 简单代码
  10. 支付宝开发 ——第三方支付