#if、#ifdef、#ifndef预处理指令没有使用花括号{},因此需要以#endif作为结束。

对于不满足的代码块会直接被预处理器删除(切记是删除)


#include <stdio.h>
/*
时间:2022-05-16 16:48
作者:sgbl888
功能:预处理指令#if..#elif..#else..#endif、#ifdef...#endif、#ifndef
知识点:1、本节讲的预处理指令没有使用花括号,因此需要以#endif结束2、本节讲的预处理指令满足条件的代码块才会保留下来,不满足的代码块会被删除(切记是删除)
*/
#define N 3
#define HELLO hello
int main(){//#if...#elif...#else...#endif#if N == 0 //不满足,下面的三行代码将被删除printf("11111\n");printf("22222\n");printf("33333\n");#elif N == 1 //不满足,下面的三行代码将被删除printf("aaaaa\n");printf("bbbbb\n");printf("ccccc\n");#else //满足,保留下面的三行代码printf("*****\n");printf("+++++\n");printf("-----\n");              #endif//#ifdef#ifdef HELLO //HELLO已经在上面定义了,因此下行的代码保留printf("HELLO 已定义\n");#else //下行的代码保留printf("HELLO 未定义\n");#endif//#ifndef#ifndef HELLO2 //未定义HELLO2,下行代码保留printf("HELLO2 未定义\n");#else //下行代码删除printf("HELLO2 已经定义\n");#endifreturn 0;
}

预处理指令if、ifdef、ifndef相关推荐

  1. c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法

    #if, #ifdef, #ifndef, #else, #elif, #endif用法 #if, #ifdef, #ifndef, #else, #elif, #endif #if, #ifdef, ...

  2. C语言基础:预处理指令

    本文基于一个简单的Simulink生成的代码,研究MBD中比较常见的一些预处理指令. 文章目录 1 C语言预处理指令 2 #include 3 #define 4 #ifndef...#endif 5 ...

  3. C/C++常见的预处理指令

    本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下 ...

  4. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)

    iOS开发 -- C语言基础12(预处理指令) 宏定义 预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源 ...

  5. c语言中预处理指令的作用,C语言中常用预处理指令

    转载自 https://blog.csdn.net/farsight2009/article/details/58602886 姓名:张艳博 学号:17021223249 [嵌牛导读]: C语言中常用 ...

  6. 解析C/C++的预处理指令

    解析C/C++的预处理指令 2008年04月30日 星期三 上午 01:07 一.预处理的由来:     在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一 ...

  7. C/C++编译预处理指令

    众所周知,你的程序编译前要做的事就是扫描源代码,对其做初步的转换,产生新的源代码提供给编译器,这个过程就叫编译预处理.这个处理过程由预处理器来完成,预处理器是在程序真正运行前由编译器调用的预处理程序. ...

  8. C++ 高级篇(五)—— 预处理指令

    预处理指令是我们写在程序代码中的给预处理器(preprocessor)的 命令,而不是程序本身的语句.预处理器在我们编译一个C++程序时由编译器自动执行,它负责控制对程序代码的第一次验证和消化. 所有 ...

  9. 学习笔记15-C语言-预处理指令、条件编译、头文件

    预处理指令: 程序猿编写的代码不是标准C代码,并不能被真正的编译器索编译,需要一段程序把代码翻译一下. 翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以#开头的都是预处理指令查看预处理的过程:gc ...

最新文章

  1. java 根据圆心计算圆弧上点的经纬度_冲压件展开计算方法(二),转发给每一位冲压人...
  2. 英特尔人工智能副总裁:AI不是一种技能,而是一种对于工作的描述
  3. java操作大文件复制
  4. ubuntu deepin等debian系Linux发行版安装docker-ce命令
  5. PHP用支付宝沙箱账号测试支付功能
  6. IP大时代下,网络枪机技术发展现状
  7. 计算机网络【六】网络层协议
  8. 七牛服务器入门教程_教程:使用无服务器,StepFunction和StackStorm构建社区的入门应用程序…...
  9. LeetCode 1074. 元素和为目标值的子矩阵数量(2d前缀和+哈希)
  10. qwebkit 服务器调用本地html方法,用qt的QWebkit类调用谷歌地图
  11. 【自然框架】——重开在线演示
  12. 缓存系统在游戏业务中的特异性
  13. python如何将抓取的数据保存到excel_Python实现提取XML内容并保存到Excel中的方法...
  14. 给用户配置hadoop权限
  15. 网页嵌入视频播放器代码大全
  16. Jmeter下载与安装
  17. pdf太大,pdf怎么压缩的小一点
  18. excel的IRR函数中的预估值有什么用
  19. 使对话框的最大化、最小化和关闭按钮变灰以及对其重载的方法
  20. linux好压iso压缩文件,【WinRAR Linux版】WinRAR Linux版下载_多特软件站

热门文章

  1. pushlet实现单机-集群服务端消息推送
  2. 震撼美景,穷尽一生都难以遇见!
  3. 【笔记】【机器学习基础】交叉验证
  4. Nodejs的exports与module.exports的区别
  5. 书单 | 8月新书榜单TOP10,快来看看都有谁吧~~
  6. 怒之铁拳重置Linux版,西班牙《怒之铁拳重制版V5.0》~~~~~~~~~~115+RF盘分享
  7. 获取各类资源,选择python写爬虫脚本,想要什么直接爬就完事了
  8. 退休大厂软件测试面试官给大家的一些建议
  9. InnoDB的redo日志管理---饶珑辉
  10. 原来使Maya Arnold也能渲染出高质量作品!超赞小技巧