条件编译

符合条件,才进行编译。不符合条件的部分,直接忽略,根本不对其进行编译,能大大的提高效率。

主要有两种方式 :    (1)  #if expressition   看表达式结果。

(2)   #ifdef  xxx         看是否有过define xxx行为。

(1) #if  expression  首先对这个表达式求值,若为真,则进行接着往下走。

#if expression1.....
#elif  expression2.....
#else....
#endif

  

(2) #ifdef  xxx : 首先检查之前是否有过 define xxx的操作, 不关心把xxx define成什么,即使define成空,也无所谓。

文件包含

#include <标准库>    或者   #include “自定义库”

对于自定义的库,即my.h文件,需要特别注意一个地方。

my1.h 里面嵌套 include了 my_printf.h文件。my_printf.h又include了 my1.h。这时就造成了死循环了。

或者顶层.h  #include了若干次my_printf.h文件,这时就会有风险。

为了避免这种风险: 我们统一要求 .h文件写法:

#ifndef _FILE_H_NAME_#define    _FILE_H_NAME_  1/*--------------------------*/声明各种东西/*--------------------------*/
#endif

  在预编译阶段,第一次#include该文件时,因为从未有过 #define _FILE_H_NAME_行为,所以此时会进行#define操作。

假如有第二次声明,因为之前已经#define,就直接#endif结束了。就从根源上避免了 多重引用的问题。

转载于:https://www.cnblogs.com/mokang0421/p/7529213.html

C和指针---读书笔记16相关推荐

  1. 《Head First设计模式》 读书笔记16 其余的模式(二) 蝇量 解释器 中介者

    <Head First设计模式> 读书笔记16 其余的模式(二) 蝇量 解释器 中介者 蝇量(Flyweight Pattern) 如想让某个类的一个实例能用来提供许多"虚拟实例 ...

  2. 大数据之路读书笔记-16数据应用

    大数据之路读书笔记-16数据应用 全球知名咨询公司麦肯锡称:"数据,已经 透到当今每一个行业和业务职能领域,成为重要的生产要素.人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈 ...

  3. c语言指针读书笔记,《C与指针》读书笔记一

    我平时不太看书.倒不是我没有读书的习惯.而是如今的社会知识传播的方式太多.书已经不是唯一知识的载体.至于"书是人类知识的阶梯"这句名言的时代已经过去了.每天各种微信公众号推介的文章 ...

  4. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  5. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  6. Android智能指针——读书笔记

    目录结构 目录结构 参考资料 概述 背景知识 GC经典问题 轻量级指针 实现原理分析 构造函数 析构函数 应用实例分析 强指针和弱指针 强指针的实现原理分析 增加对象的弱引用计数 增加对象的强引用计数 ...

  7. c语言指针读书笔记,《C与指针》读书笔记九

    原标题:<C与指针>读书笔记九 指针之所以在C语言中占据很大分量,是因为指针有很大的灵活性.指针以结构体结合确实为程序的编写提供了一把锋利无比的宝剑.在有些资料上介绍结构体是多种数据集合, ...

  8. DAMA数据管理知识体系指南-读书笔记16

    第16章 数据管理组织与角色期望 一.了解现有的组织和文化规范 数据管理组织应与公司的组织层级结构和资源保持一致.找到合适的人员,需要了解数据管理在组织内部的功能和政治作用.目标应该是跨职能的不同业务 ...

  9. APUE读书笔记-16网络通信-08非阻塞和异步IO

    转载于:https://blog.51cto.com/quietheart/864214

  10. OCP读书笔记(16) - 管理资源

    使用者组 创建资源用户组OLTP_GRP,将用户HR,OE加入此组: BEGIN dbms_resource_manager.clear_pending_area(); dbms_resource_m ...

最新文章

  1. 机器学习系列18:核函数
  2. 学习笔记——os模块常见列表
  3. 框架:spring总结
  4. ASP.NET在访问Controller的方法带参数时怎样防止黑客攻击
  5. 小米10Pro手机双击android,小米10Pro:不完美,但很小米。
  6. Android 异常问题分析
  7. ue4显示变量_UE4:快速入门蓝图(Blueprint)的方法之一
  8. 一种增加先验知识库的贝叶斯网络推理模型
  9. 2018华为软件精英挑战赛体会
  10. html5 队列展示,设计一个队列研究实例
  11. Win10系统 Python解释器:anaconda的安装
  12. protobuf 3.5 java使用介绍(二)
  13. RNA_seq表达分析
  14. 日本公平贸易委员会结束对App Store的调查,苹果再次宣布整改
  15. kubectl命令补全出错:kubectl ge-bash: _get_comp_words_by_ref: command not found
  16. html表格美化模板,JavaScript + CSS 美化出的条纹表格样式
  17. 用一个 while 循环计算1+3+5+7 + ……+99的值,并输出计算结果。
  18. 计算机网络及多媒体知识,计算机基础知识:多媒体的基本概念及关键技术
  19. TiDB 在汽车之家818台网互动项目中的应用
  20. 跟益达学Solr5之使用Tomcat部署Solr

热门文章

  1. 可视化_数据可视化—地图可视化
  2. 计算机小知识应用,电脑使用小知识
  3. Unix环境下的编程,所涉及的主要c语言知识
  4. Redis 6.0 源码阅读笔记(8) -- Stream 数据类型源码分析
  5. linux开发之uboot移植 -- uboot简介
  6. Mac下Vmware Fusion配置虚拟机虚拟网卡并配置CENTOS上网
  7. 一个简单的txt读取与导出
  8. 【渝粤教育】国家开放大学2018年春季 8636-22T实用心理学 参考试题
  9. No rule to make target `/usr/lib/arm-linux-gnueabihf/libopencv_videostab.so.2.4.8'
  10. 求解偏微分方程开源有限元软件deal.II学习--Step 12