C和指针---读书笔记16
条件编译
符合条件,才进行编译。不符合条件的部分,直接忽略,根本不对其进行编译,能大大的提高效率。
主要有两种方式 : (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相关推荐
- 《Head First设计模式》 读书笔记16 其余的模式(二) 蝇量 解释器 中介者
<Head First设计模式> 读书笔记16 其余的模式(二) 蝇量 解释器 中介者 蝇量(Flyweight Pattern) 如想让某个类的一个实例能用来提供许多"虚拟实例 ...
- 大数据之路读书笔记-16数据应用
大数据之路读书笔记-16数据应用 全球知名咨询公司麦肯锡称:"数据,已经 透到当今每一个行业和业务职能领域,成为重要的生产要素.人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈 ...
- c语言指针读书笔记,《C与指针》读书笔记一
我平时不太看书.倒不是我没有读书的习惯.而是如今的社会知识传播的方式太多.书已经不是唯一知识的载体.至于"书是人类知识的阶梯"这句名言的时代已经过去了.每天各种微信公众号推介的文章 ...
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- Android智能指针——读书笔记
目录结构 目录结构 参考资料 概述 背景知识 GC经典问题 轻量级指针 实现原理分析 构造函数 析构函数 应用实例分析 强指针和弱指针 强指针的实现原理分析 增加对象的弱引用计数 增加对象的强引用计数 ...
- c语言指针读书笔记,《C与指针》读书笔记九
原标题:<C与指针>读书笔记九 指针之所以在C语言中占据很大分量,是因为指针有很大的灵活性.指针以结构体结合确实为程序的编写提供了一把锋利无比的宝剑.在有些资料上介绍结构体是多种数据集合, ...
- DAMA数据管理知识体系指南-读书笔记16
第16章 数据管理组织与角色期望 一.了解现有的组织和文化规范 数据管理组织应与公司的组织层级结构和资源保持一致.找到合适的人员,需要了解数据管理在组织内部的功能和政治作用.目标应该是跨职能的不同业务 ...
- APUE读书笔记-16网络通信-08非阻塞和异步IO
转载于:https://blog.51cto.com/quietheart/864214
- OCP读书笔记(16) - 管理资源
使用者组 创建资源用户组OLTP_GRP,将用户HR,OE加入此组: BEGIN dbms_resource_manager.clear_pending_area(); dbms_resource_m ...
最新文章
- 机器学习系列18:核函数
- 学习笔记——os模块常见列表
- 框架:spring总结
- ASP.NET在访问Controller的方法带参数时怎样防止黑客攻击
- 小米10Pro手机双击android,小米10Pro:不完美,但很小米。
- Android 异常问题分析
- ue4显示变量_UE4:快速入门蓝图(Blueprint)的方法之一
- 一种增加先验知识库的贝叶斯网络推理模型
- 2018华为软件精英挑战赛体会
- html5 队列展示,设计一个队列研究实例
- Win10系统 Python解释器:anaconda的安装
- protobuf 3.5 java使用介绍(二)
- RNA_seq表达分析
- 日本公平贸易委员会结束对App Store的调查,苹果再次宣布整改
- kubectl命令补全出错:kubectl ge-bash: _get_comp_words_by_ref: command not found
- html表格美化模板,JavaScript + CSS 美化出的条纹表格样式
- 用一个 while 循环计算1+3+5+7 + ……+99的值,并输出计算结果。
- 计算机网络及多媒体知识,计算机基础知识:多媒体的基本概念及关键技术
- TiDB 在汽车之家818台网互动项目中的应用
- 跟益达学Solr5之使用Tomcat部署Solr
热门文章
- 可视化_数据可视化—地图可视化
- 计算机小知识应用,电脑使用小知识
- Unix环境下的编程,所涉及的主要c语言知识
- Redis 6.0 源码阅读笔记(8) -- Stream 数据类型源码分析
- linux开发之uboot移植 -- uboot简介
- Mac下Vmware Fusion配置虚拟机虚拟网卡并配置CENTOS上网
- 一个简单的txt读取与导出
- 【渝粤教育】国家开放大学2018年春季 8636-22T实用心理学 参考试题
- No rule to make target `/usr/lib/arm-linux-gnueabihf/libopencv_videostab.so.2.4.8'
- 求解偏微分方程开源有限元软件deal.II学习--Step 12