上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页
摘要: 今天调试C++自定义String代码的时候,碰到一个问题,编译期报错:对象包含与成员函数不兼容的类型限定符。 先看代码: class String { // 自定义String类 public: String(const char *s) {// 构造函数 if (!s) { len = 0; st 阅读全文
posted @ 2021-11-13 17:02 明明1109 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: C++对象在内存中如何存储? 把这个问题称为C对象模型(C Object Model)。下面对C++对象模型,进行说明: 要存储的内容 C++对象包括数据成员和函数成员。其中, 数据成员分为:static data members(静态数据成员),nonstatic data members(非静态 阅读全文
posted @ 2021-11-12 23:37 明明1109 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 11.1 入口函数和程序初始化 11.1.1 程序从main开始吗? 先看3个程序 程序1(C): #include <stdio.h> #include <stdlib.h> int a = 3; int main(int argc, char *argv[]) { int *p = (int * 阅读全文
posted @ 2021-11-06 10:44 明明1109 阅读(771) 评论(0) 推荐(0) 编辑
摘要: 10.1 程序的内存布局 现代APP(应用程序)都运行在一个内存空间里,32bit系统有4GB地址空间。APP直接用32bit位地址寻址,称为平坦(flat)的内存模型。该模型中,整个内存是一个统一的地址空间,用户可以用一个32bit指针访问任意内存位置。 OS会将4GB内存空间分段,不同的段有不同 阅读全文
posted @ 2021-11-03 09:28 明明1109 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 1.1 从Hello World说起 本书解决什么问题? 对于最简单的C Hello World: #include <stdio.h> int main() { printf("Hello World\n"); return 0; } 程序为什么要被编译器编译了之后能运行? 编译器把C程序转化成可 阅读全文
posted @ 2021-11-01 16:31 明明1109 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 16 模板与泛型编程 OOP,能处理类型在程序运行之前都未知的情况;泛型编程,在编译时能获取类型。 模板是泛型编程的基础。本章学习如何定义自己的模板。 16.1 定义模板 问题引出:假设希望编写一个函数来比较2个值,并指出第一个值是<, > or == 第二个值。实际编程中,可能想要定义多个重载函数 阅读全文
posted @ 2021-10-30 19:40 明明1109 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 本章主要内容,类定义构造函数,用来控制在创建此类型对象时做什么。学习类如何控制该类型对象拷贝、赋值、移动或销毁时做什么。 主要函数:拷贝构造函数、移动构造函数、拷贝赋值运算、移动赋值运算符以及析构函数。 拷贝控制操作 -- 拷贝和移动构造函数,定义了当用同类型的另一个对象初始化本对象时做什么。 拷贝 阅读全文
posted @ 2021-10-30 19:40 明明1109 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 环境说明 Ubuntu版本: 14.04.1 x86_64 LTS g++ 版本: 4.8.4 问题 terminate called after throwing an instance of 'std::system_error' g++编译cpp源码后,运行程序出现错误提示:“terminat 阅读全文
posted @ 2021-10-27 14:25 明明1109 阅读(1559) 评论(0) 推荐(0) 编辑
摘要: Linux系统为进程预定义了3个流:标准输入、标准输出、标准错误。进程启动时,会自动打开。 3个流分别对应文件描述符(int):STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO; 对应文件指针(FILE *):stdin、stdout、stderr; 缓冲 标准I/O 阅读全文
posted @ 2021-10-26 17:54 明明1109 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 结论: 1)cin.getline从cin读取数据,受限于用户提供缓存大小; 2)C++ getline搭配string,从cin读取一行字符串,无缓冲区大小限制; 3)C getline从stdin读取数据,空间会自动扩充,但需要用户手动释放; 利用getline函数从标准输入流读取一行字符串,有 阅读全文
posted @ 2021-10-26 00:01 明明1109 阅读(4510) 评论(0) 推荐(0) 编辑
摘要: 2两方法: 使用math中的宏定义M_PI; 利用arccos(-1) = π,来计算π值; #include <iostream> #include <iomanip> #define _USE_MATH_DEFINES // 使用math.h中的M_PI宏定义需要 #include <math. 阅读全文
posted @ 2021-10-25 00:00 明明1109 阅读(7621) 评论(0) 推荐(1) 编辑
摘要: 本文的具体寄存器描述,以NXP LPC2000系列用到的内核ARM7TDMI-S processor为例,参考ARM官网 。 提到ARM内部寄存器,就不得不提到ARM处理器状态和处理器模式,因为不同状态和模式下,访问寄存器的权限是完全不一样的。 ARM处理器状态 嵌入式系统对存储成本和空间要求比较高 阅读全文
posted @ 2021-10-24 23:20 明明1109 阅读(2826) 评论(1) 推荐(1) 编辑
摘要: 实际上,根据处理器所处状态是ARM状态,还是Thumb状态,分两种情况: 对于ARM状态 因为ARM指令集是字对齐的(4byte),当处理器处在ARM状态下时,指令的地址也应该是形如0x0, 0x4, 0x8, 0xC... 这样4的倍数。而PC中存放的是下一条指令的地址,所以PC的内容也必须是4的 阅读全文
posted @ 2021-10-24 18:28 明明1109 阅读(167) 评论(0) 推荐(0) 编辑
摘要: VMware 12虚拟机下,安装open-vm-tools时,配置Ubuntu 14.04 LTS与Win10共享目录,执行命令$vmhgfs-fuse .host:/ /mnt/hgfs时,提示“vmhgfs-fuse: command not found” 错误。 要如何解决? 配置步骤参见vm 阅读全文
posted @ 2021-10-19 16:07 明明1109 阅读(8912) 评论(0) 推荐(0) 编辑
摘要: getline, gets, fgets都支持从标准输入读取一行字符串,那么它们有什么区别呢? 解答: gets 不推荐使用,gets(s) 等价于 fgets(s, INT_MAX, stdin),因为没有对缓冲区溢出做处理,不安全; getline 碰到EOF返回-1,fgets返回NULL; 阅读全文
posted @ 2021-09-27 18:59 明明1109 阅读(3651) 评论(0) 推荐(0) 编辑
摘要: libevent官网提供的教程无法打开,网上提供的pdf文档又没有代码,或者不够全面、详细,故从libevent-book源码编译出可阅读、查看的html文档。 环境准备 OS: Ubuntu 18x64 LTS libevent编译环境:参见libevent学习笔记之Ubuntu下搭建编译libe 阅读全文
posted @ 2021-09-20 10:31 明明1109 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 环境准备 名称 版本 下载/安装方式 描述 Ubuntu ubuntu 18x64 官网下载 ubuntu 官网https://ubuntu.com/download/desktop perl 最新版 apt-get 脚本解释器,编译openssl用 g++ 最新版 apt-get C++编译器 m 阅读全文
posted @ 2021-09-20 10:28 明明1109 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 一、环境准备 环境/软件名 版本 描述 操作系统 Win10x64 编译工具 VS2017 Community 提供交叉编译环境 https://visualstudio.microsoft.com/zh-hans/vs/community/ perl脚本解释器 ActivePerl-5.24.3. 阅读全文
posted @ 2021-09-18 14:40 明明1109 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 基本概念 信号量是什么? 信号量(semaphore)是一种用于不同进程间或一个给定进程的不同线程间同步手段的原语。 也就是说,信号量用于进程间,或者线程间同步的。 三种类型信号量 信号量主要有三种类型,都可以用于进程或线程间同步: Posix有名(named)信号量:使用Posix IPC名字标识 阅读全文
posted @ 2021-09-04 16:48 明明1109 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 基本概念 记录锁 记录上锁(record locking)是读写锁(readers-writer lock,简称rw lock)的一种扩展类型,可用于亲缘进程或无亲缘进程之间共享某个文件的读和写,常简称为记录锁。读写锁可参见这篇文章:Linux 自旋锁,互斥量(互斥锁),读写锁。 记录锁锁定的文件通 阅读全文
posted @ 2021-09-02 18:57 明明1109 阅读(1635) 评论(2) 推荐(2) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页