
C/C++
ZC·Shou
深入研究,分享最纯粹的技术干货
展开
-
C/C++ 之 C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)
文章转载自:https://www.cnblogs.com/chenyangchun/p/6795923.html 。在了解这块时,发现了这篇文档,感觉写的很不错!c强制转换与c++强制转换c 语言强制类型转换主要用于基础的数据类型间的转换,语法为:(type-id)expression //转换格式1type-id(expression) //转换格式2c++ 除了能使用c语言的...转载 2018-12-19 13:19:13 · 6082 阅读 · 0 评论 -
C/C++ 之 应用程序的编译过程
一、C/C++语言由源代码生成的各阶段如下 源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。下面使用VC编译为例,部分内容在gcc中不...原创 2018-02-18 15:20:04 · 728 阅读 · 0 评论 -
C/C++之预处理命令
C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。C语言预处理程序包括下列命令:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等。总体来说,预处理指令可以分为四大类:宏:#define、#undef文件:#include...原创 2018-02-18 15:33:47 · 1493 阅读 · 0 评论 -
C/C++之类的前置声明
C++中将"接口与实现分离"的两个重要目的就是"降低文件间的编译依存关系"和"隐藏对象的实现细节"。而实现这一目的的关键技术就是Pimpl模式(pointer to implementation),也即是把一个类所有的实现细节都"代理"给另一个类来完成,而自己只负责提供接口。而实现"Pimpl模式"的关键又是"依赖对象的声明(declaration)而非定义(definition)"。那么原创 2018-02-18 15:30:25 · 1474 阅读 · 0 评论 -
C/C++之C++命名空间
(1)命名空间可以是不连续的而且允许多层嵌套1、一个命名空间可以分散定义在一个文件的多个地方,分开的命名空间相互补充。测试12、一个命名空间可以分散定义在多个文件中。命名空间可以不连续意味着可以用分离的接口文件和实现文件构成命名空间(类的定义和实现)。例如下面的MyClass类,虽然都在一个命名空间MyClassSpace中,但是,这仍然是两部分,不要以为在main里面会在MyClassSpace...原创 2018-02-18 15:16:52 · 852 阅读 · 0 评论 -
C/C++之Gcc常用参数
gcc是GNU旗舰产品,目前基本上就是和Unix捆绑在一起分发的。这个东西功能强大,有多达上千个选项,其用户手册也有将近一万行。虽然其中的多数选项平时很少用到,但是不管装软件还是写程序,往往都会用到gcc。下面我就gcc最最常用的几个选项做一个简要的说明。Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]Gcc [-c|-S|-E] [-std=standard] ...原创 2018-02-18 15:11:40 · 790 阅读 · 0 评论 -
C/C++ 之 C发展史及 各标准特性说明
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉!C和C++ C++是C语言的一个超集。C++有一个众所周知的特性:对C语言的高度兼容。这样的兼容性不仅体现在程序员可以较为容易地将C代码“升级”为C++代码上,也体现在C代码可以被C++的编译器所...原创 2017-03-06 19:04:22 · 3018 阅读 · 0 评论 -
C/C++之数据类型
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉!C数据类型 ANSI C99标准中规定的数据类型如下图所示。 说明: 同一行类型的语义相同,即可以相互替代。long float类型与double相同,故在C99标准中没有此类型。...原创 2017-03-07 19:54:41 · 2116 阅读 · 0 评论 -
C/C++之常用关键字
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉! C及C++中变量的存储方式有三种:自动、静态、动态。在C++11中,额外增加了一种:线程存储方式(关键字thread_local)。(C没有)以下所谓的可见并不是指编程者可以直接使用,这里的可见是对编译...原创 2017-03-08 21:21:13 · 1130 阅读 · 0 评论 -
C/C++之函数
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉! 说到函数,第一个要说的就是main函数,他是C/C++标准规定的!main的形式如下:/* 形式一*/int main(int argc, char *argv[]){ statem...原创 2017-03-09 19:22:23 · 1362 阅读 · 0 评论 -
C/C++之标准输入输出
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉!文件 在此之前,有必要先了解一下文件是什么东西!所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。例如源程序文件、目标文件、可执行文件、库文件等。文件通常是驻留在外部介质(...原创 2017-03-10 18:02:39 · 5693 阅读 · 0 评论 -
C/C++之 C++ String(字符串)
Tips: 1. 本人当初学习C/C++的记录。 2. 资源很多都是来自网上的,如有版权请及时告知! 3. 可能会有些错误。如果看到,希望能指出,以此共勉!要想使用标准C++中string类,必须要#include <string> // 注意是<string>,不是<string.h>,带.h的是C语言中的头文件...原创 2017-03-10 19:24:19 · 1622 阅读 · 0 评论 -
C/C++之大端模式和小端模式
Byte Endian是指字节在内存中的组织,所以也称它为Byte Ordering或Byte Order。对于数据中跨越多个字节的对象, 我们必须为它建立这样的约定:(1) 它的地址是多少?(2) 它的字节在内存中是如何组织的?对于跨越多个字节的对象,一般它所占的字节都是连续的,它的地址等于它所占字节最低地址。(链表可能是个例外, 但链表的地址可看作链表头的地址)。比如: int x,它的地址为...原创 2018-02-18 11:47:25 · 2891 阅读 · 0 评论