会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
明明1109
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
12
13
14
15
16
17
18
19
20
···
26
下一页
2021年11月13日
C++ 调试问题:对象包含与成员函数不兼容的类型限定符
摘要: 今天调试C++自定义String代码的时候,碰到一个问题,编译期报错:对象包含与成员函数不兼容的类型限定符。 先看代码: class String { // 自定义String类 public: String(const char *s) {// 构造函数 if (!s) { len = 0; st
阅读全文
posted @ 2021-11-13 17:02 明明1109
阅读(1466)
评论(0)
推荐(0)
2021年11月12日
C++对象模型学习笔记之关于对象
摘要: C++对象在内存中如何存储? 把这个问题称为C对象模型(C Object Model)。下面对C++对象模型,进行说明: 要存储的内容 C++对象包括数据成员和函数成员。其中, 数据成员分为:static data members(静态数据成员),nonstatic data members(非静态
阅读全文
posted @ 2021-11-12 23:37 明明1109
阅读(251)
评论(0)
推荐(0)
2021年11月6日
《程序员的自我修养》读书笔记 - 第十一章 运行库
摘要: 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
阅读(1227)
评论(0)
推荐(0)
2021年11月3日
《程序员的自我修养》读书笔记 - 第十章 内存
摘要: 10.1 程序的内存布局 现代APP(应用程序)都运行在一个内存空间里,32bit系统有4GB地址空间。APP直接用32bit位地址寻址,称为平坦(flat)的内存模型。该模型中,整个内存是一个统一的地址空间,用户可以用一个32bit指针访问任意内存位置。 OS会将4GB内存空间分段,不同的段有不同
阅读全文
posted @ 2021-11-03 09:28 明明1109
阅读(529)
评论(0)
推荐(0)
2021年11月1日
《程序员的自我修养》读书笔记 - 第一章 温故而知新
摘要: 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
阅读(370)
评论(0)
推荐(0)
2021年10月30日
C++ Primer学习笔记 - 第16章 模板与泛型编程
摘要: 16 模板与泛型编程 OOP,能处理类型在程序运行之前都未知的情况;泛型编程,在编译时能获取类型。 模板是泛型编程的基础。本章学习如何定义自己的模板。 16.1 定义模板 问题引出:假设希望编写一个函数来比较2个值,并指出第一个值是<, > or == 第二个值。实际编程中,可能想要定义多个重载函数
阅读全文
posted @ 2021-10-30 19:40 明明1109
阅读(910)
评论(0)
推荐(0)
C++ Primer学习笔记 - 第13章 拷贝控制
摘要: 本章主要内容,类定义构造函数,用来控制在创建此类型对象时做什么。学习类如何控制该类型对象拷贝、赋值、移动或销毁时做什么。 主要函数:拷贝构造函数、移动构造函数、拷贝赋值运算、移动赋值运算符以及析构函数。 拷贝控制操作 -- 拷贝和移动构造函数,定义了当用同类型的另一个对象初始化本对象时做什么。 拷贝
阅读全文
posted @ 2021-10-30 19:40 明明1109
阅读(162)
评论(0)
推荐(0)
2021年10月27日
Linux C/C++ 编译、调试问题汇总
摘要: 环境说明 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
阅读(2048)
评论(0)
推荐(0)
2021年10月26日
Linux 系统编程学习笔记 - 标准输入输出之缓冲
摘要: Linux系统为进程预定义了3个流:标准输入、标准输出、标准错误。进程启动时,会自动打开。 3个流分别对应文件描述符(int):STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO; 对应文件指针(FILE *):stdin、stdout、stderr; 缓冲 标准I/O
阅读全文
posted @ 2021-10-26 17:54 明明1109
阅读(1043)
评论(0)
推荐(0)
C++ getline读取一行字符串的几种方法
摘要: 结论: 1)cin.getline从cin读取数据,受限于用户提供缓存大小; 2)C++ getline搭配string,从cin读取一行字符串,无缓冲区大小限制; 3)C getline从stdin读取数据,空间会自动扩充,但需要用户手动释放; 利用getline函数从标准输入流读取一行字符串,有
阅读全文
posted @ 2021-10-26 00:01 明明1109
阅读(5372)
评论(0)
推荐(0)
2021年10月25日
C/C++中使用PI(π)
摘要: 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
阅读(11133)
评论(0)
推荐(1)
2021年10月24日
ARM(CPU)内部寄存器学习笔记
摘要: 本文的具体寄存器描述,以NXP LPC2000系列用到的内核ARM7TDMI-S processor为例,参考ARM官网 。 提到ARM内部寄存器,就不得不提到ARM处理器状态和处理器模式,因为不同状态和模式下,访问寄存器的权限是完全不一样的。 ARM处理器状态 嵌入式系统对存储成本和空间要求比较高
阅读全文
posted @ 2021-10-24 23:20 明明1109
阅读(3997)
评论(1)
推荐(1)
程序计数器PC的bits[1:0]为什么是0?
摘要: 实际上,根据处理器所处状态是ARM状态,还是Thumb状态,分两种情况: 对于ARM状态 因为ARM指令集是字对齐的(4byte),当处理器处在ARM状态下时,指令的地址也应该是形如0x0, 0x4, 0x8, 0xC... 这样4的倍数。而PC中存放的是下一条指令的地址,所以PC的内容也必须是4的
阅读全文
posted @ 2021-10-24 18:28 明明1109
阅读(298)
评论(0)
推荐(0)
2021年10月19日
vmhgfs-fuse: command not found(命令未找到) 的解决办法
摘要: 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
阅读(13140)
评论(0)
推荐(0)
2021年9月27日
Linux C getline, gets, fgets 函数区别
摘要: getline, gets, fgets都支持从标准输入读取一行字符串,那么它们有什么区别呢? 答: gets不推荐使用,gets(s)等价于fgets(s, INT_MAX, stdin),因为没有对缓冲区溢出做处理,不安全; getline碰到EOF返回-1,fgets返回NULL; 如果传入g
阅读全文
posted @ 2021-09-27 18:59 明明1109
阅读(5598)
评论(0)
推荐(0)
2021年9月20日
libevent 官网参考手册libevent-book编译、安装
摘要: libevent官网提供的教程无法打开,网上提供的pdf文档又没有代码,或者不够全面、详细,故从libevent-book源码编译出可阅读、查看的html文档。 环境准备 OS: Ubuntu 18x64 LTS libevent编译环境:参见libevent学习笔记之Ubuntu下搭建编译libe
阅读全文
posted @ 2021-09-20 10:31 明明1109
阅读(568)
评论(0)
推荐(0)
libevent学习笔记之Ubuntu下搭建编译libevent环境
摘要: 环境准备 名称 版本 下载/安装方式 描述 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
阅读(1097)
评论(0)
推荐(0)
2021年9月18日
libevent学习笔记之搭建Win10开发环境
摘要: 一、环境准备 环境/软件名 版本 描述 操作系统 Win10x64 编译工具 VS2017 Community 提供交叉编译环境 https://visualstudio.microsoft.com/zh-hans/vs/community/ perl脚本解释器 ActivePerl-5.24.3.
阅读全文
posted @ 2021-09-18 14:40 明明1109
阅读(1172)
评论(0)
推荐(0)
2021年9月4日
Linux Posix信号量、System V信号量,生产者与消费者问题应用
摘要: 基本概念 信号量是什么? 信号量(semaphore)是一种用于不同进程间或一个给定进程的不同线程间同步手段的原语。 也就是说,信号量用于进程间,或者线程间同步的。 三种类型信号量 信号量主要有三种类型,都可以用于进程或线程间同步: Posix有名(named)信号量:使用Posix IPC名字标识
阅读全文
posted @ 2021-09-04 16:48 明明1109
阅读(1136)
评论(0)
推荐(0)
2021年9月2日
Linux 文件锁与记录锁
摘要: 基本概念 记录锁 记录上锁(record locking)是读写锁(readers-writer lock,简称rw lock)的一种扩展类型,可用于亲缘进程或无亲缘进程之间共享某个文件的读和写,常简称为记录锁。读写锁可参见这篇文章:Linux 自旋锁,互斥量(互斥锁),读写锁。 记录锁锁定的文件通
阅读全文
posted @ 2021-09-02 18:57 明明1109
阅读(2094)
评论(2)
推荐(2)
上一页
1
···
12
13
14
15
16
17
18
19
20
···
26
下一页
公告