2019独角兽企业重金招聘Python工程师标准>>>

1.    前言   

大一开始学c++,在学校的课程只是讲了基本数据类型,后来接触到java,就一直使用java了,完全抛弃了c++。到现在,事实证明,这是错的。抛弃c++是错的,它是基础,不懂就程序员的人生就不完整。

以后会经常写一些我学习c++的一些笔记,一来达到巩固之效,二来便于复习。

2.    预处理器

在学C++之前有必要知道C++预处理器是什么?下面看一段代码:

#include <iostream>
using namespace std;

和C一样C++也使用一个预处理器,预处理器有多种(有种是把C++翻译成C来处理的),这里只说处理#开头的编译指令。预处理器在进行主编译之前对源程序进行处理,它会在编译源程序时自动运行。

上面那第一行代码意思是要将iostream文件的内容随源代码文件的内容一起交给编译器处理,也就是#include <iostream>是要被iostream里面的代码所替代,但是原始文件没有被修改,而是和源代码文件组合一个新的文件,编译的下一阶段将使用它。

那么为什么使用iostream呢?这是因为我们的程序要和外界通信,而iostream里面就有这个通信的桥梁——cin(输入/读)和cout(输出/写),所以如果我们要和外界通信,那么就要使用iostream里面的方法,这样就要把iostream里面的代码包含进来,才能实现。

3.    名称空间

第二行是使用名称空间std。顺便说一下名称空间,它的作用是让编译器来区分是使用哪个产品里的同名的东西,比如有两个厂商的产品,假如都有一个叫a()方法,那么在程序中使用a()方法时,编译器就不知道该使用哪个方法,这时厂商会给它的产品一个名称,假如叫ZZero,这使用其a()方法时就该这样写:ZZero::a()。而上面的std就是这里的ZZero。

转载于:https://my.oschina.net/u/1257439/blog/373907

C++ 预处理器和名称空间相关推荐

  1. (转载)虚幻引擎3--9掌握虚幻技术UnrealScript 预处理器

    第九章 – UNREALSCRIPT预处理器 9.1概述 9.2 MACRO(宏)的基础知识 指南 9.1 –您的第一个宏 9.3具有参数的宏 指南 9.2 –       MACRO参数 9.4内置 ...

  2. static在内存层面的作用_「C++ Primer plus 心得」9.内存模型和名称空间

    本章内容包括: 单独编译 存储持续性.作用域和链接性 定位new运算符 名称空间 C++ 为在内存中存储数据方面提供了多种选择.可以厅数据保留在内存中的时间长度(存储持续性)以及程序的哪一部分可以访问 ...

  3. C语言再学习 -- C 预处理器

    gcc/cc xxx.c  可以编译链接C源程序生成一个可执行文件 a.out 整个过程中可以划分为以下的4步流程: (1)预处理/预编译: 主要用于包含头文件的扩展,以及执行宏替换等 //加上 -E ...

  4. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...

    手动编译 lombok 在本文中,我们将看到如何在常规Java代码中使用lombok来最大程度地减少代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些 ...

  5. Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小

    在本文中,我们将看到如何在常规Java代码中使用lombok来最小化代码长度和冗余. 什么是Lombok? Lombok,一个编译时注释预处理器,有助于在编译时注入一些代码. 在详细介绍之前,我要求您 ...

  6. 《C++ Primer Plus》读书笔记之七—内存模型和名称空间

    第九章 内存模型和名称空间 1.不要将函数定义或者变量声明放到头文件中. 2.头文件常包含的内容:函数原型.使用#define或者const定义的常量.结构声明.类声明.模板声明.内联函数. 3.避免 ...

  7. C++ Primer Plus学习(九)——内存模型和名称空间

    内存模型和名称空间 单独编译 存储持续性.作用域和链接性 名称空间 单独编译 程序一般可以分为三部分: 头文件:包含结构声明和使用这些结构的函数的原型: 源代码文件:包含与结构有关的函数的代码: 源代 ...

  8. 《C Primer Plus》第十六章——C预处理器和C库

    文章目录 C预处理器和C库 本章内容 翻译程序的第一步 明示常量:#define 记号 重定义常量 在#define中使用参数 用宏参数创建字符串:#运算符 预处理器黏合剂:##运算符 变参宏:... ...

  9. C | C预处理器和C库

    目录 一.翻译程序的第一步 二.明示常量:#define 2.1 记号 2.2 重定义常量 三.在#define中使用参数 3.1 用宏参数创建字符串:#运算符 3.2 预处理器黏合剂:##运算符 3 ...

最新文章

  1. opencv仿射变换
  2. 【Harvest源码分析】GetFilteredSignal函数
  3. Robert Hoekman,Jr 继《一目了然》后的又一经典力作
  4. CUDA编程中内存管理机制
  5. fundamental-react在POC中的一个应用
  6. RabbitMQ指南之四:路由(Routing)和直连交换机(Direct Exchange)
  7. .NET单点登录实现方法----两种
  8. Spring启动的流程
  9. python爬虫框架
  10. 万恶的WIN10,已有的VirftualBox虚拟机都不能用了
  11. pds如何安装虚拟服务器,PDS工业缝纫机制版软件安装及常见问题解决方法
  12. 小米手机计算机usb连接,小米手机连接电脑不显示usb选项
  13. 第11章 UART串口通信 练习题
  14. 常见网络延迟测量方法
  15. 很佩服的一个Google大佬,离职了。。
  16. 【MySQL】MySQL乱码全面解析
  17. 怎么把pdf转为html?PDF转HTML转换器推荐
  18. vue2.0支持compiler
  19. 【Python】逆向爬虫-----模拟微信公众平台登录(MD5)
  20. C 内存布局 Memory Layout of C Programs

热门文章

  1. android gif转jpg格式文件,android使用多张图片合成gif文件
  2. SpringBoot配置@PropertySource、@ImportResource、@Bean注解
  3. 变形 圆形_中山125T圆形玻璃钢冷却塔现场安装
  4. scrapy爬取汽车之家宝马5系图片
  5. 6.安装使用vue-quill-editor
  6. BZOJ1880:[SDOI2009]Elaxia的路线(最短路,拓扑排序)
  7. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
  8. Nginx + IIS实现负载均衡 Session多站点共享
  9. netty ssl 服务器
  10. IOS-网络(数据安全:MD5加密)