c-c++基础
文章平均质量分 64
MR-GTT
这个作者很懒,什么都没留下…
展开
-
C++内存对齐
0x0. 内存对齐方式默认方式gcc编译器默认采用结构体/类中最大类型长度对齐方式。预编译指令指定方式语法:#pragma pack( [show] | [push | pop] [, identifier], n )n的取值可以为1,2,4,8…2^i0x01. 对齐规则在开始介绍对齐规则之前先介绍各类型对齐字节数定义:内置类型对齐字节数等于编译器内置大小;自定义类/结构体对齐字节数等于max(各成员变量对齐字节数) 递归取值到内置类型。规则:1. 如果通过预编译指令#pragma原创 2021-01-20 10:52:24 · 437 阅读 · 0 评论 -
谈谈C++的volatile关键字以及常见的误解
编译器对代码的优化在讲volatile关键字之前,先讲一下编译器的优化。int main() { int i = 0; i++; cout << "hello world" << endl;}按照代码,这个程序会在内存中预留int大小的空间,初始化这段内存为0,然后这段内存中的数据加1,最后输出“hello world”到标准输出中。但是根据这段代码编译出来的程序(加-O2选项),不会预留int大小的内存空间,更不会对内存中的数字加1。他只会输出“h转载 2020-07-27 14:52:04 · 320 阅读 · 0 评论 -
c++11 “=default“ 和 “=delete“ 函数
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <vector>#include <map>//c++11 类默认函数的控制:"=default" 和 "=delete"函数/*C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象转载 2020-07-02 10:34:36 · 195 阅读 · 0 评论 -
Aggregate类型以及值初始化
引言在C++中,POD是一个极其重要的概念。要理解POD类型,我们首先需要理解Aggregate类型。下文结合stackoverflow上的高票回答将对Aggregate类型做一个全面的解读。对于Aggragates的定义C++标准(C++ 03 8.5.1 §1)中的正式定义如下:An aggregate is an array or a class (clause 9) with no user-declared constructors (12.1), no private or prote转载 2020-07-02 00:15:19 · 999 阅读 · 0 评论 -
C++的默认构造函数与构造函数
构造函数:C++用于构建类的新对象时需要调用的函数。默认构造函数:未提供显式初始值时,用来创建对象的构造函数。class testClass{public: testClass(); /* 默认构造函数 */ testClass(int a, char b); /* 构造函数 */ testClass(int a=10,char b='c'); /* 默认构造函数 */private: int m_a;转载 2020-07-01 22:38:19 · 498 阅读 · 0 评论 -
Linux mmap 详解
Linux mmap详解一、mmap()是什么二、mmap()原理三、mmap和常规文件操作的区别四、mmap相关函数五、mmap使用细节六、对mmap()返回地址的访问例子:情形一:一个文件的大小是5000字节,mmap函数从一个文件的起始位置开始,映射5000字节到虚拟内存中。**情形二:一个文件的大小是5000字节,mmap函数从一个文件的起始位置开始,映射15000字节到虚拟内存中,即映射...原创 2020-01-05 20:49:54 · 1956 阅读 · 0 评论 -
C语言程序内存区域组成
C C++ 内存区域 划分转载 2017-02-24 21:47:07 · 567 阅读 · 0 评论