- 博客(22)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 ISO C文件:assert详解
assert()ISO C头文件函数原型#include <assert.h>void assert (int expression); 作用: 如果条件 (int expression) 返回错误,则终止程序执行(1)先向stderr 打印一条错误信息(2)通过调用abort终止程序运行 总结及注意事项:(1)assert只检验一个条件,因为同时检验多个条件时,...
2019-03-27 18:56:45 171
原创 细说C++(十七):new与delete解析(一)
动态内存分配new分配动态内存:使用自由空间分配得内存是无名的,因此new无法为其分配的对象命名,而是返回一个指向一个该对象指针.delete释放动态内存:注意点:...
2019-03-23 23:13:45 310
原创 细说C++(十八):new和delete解析-重载 (二)
全局作用域 ::operator new deletevoid* my_alloc(size_t size){ return malloc(size);} void* my_free(void* ptr){ return free(ptr);}inlinevoid* operator new(size_t size){ cout<<"my global n...
2019-03-23 22:40:50 220
原创 Linux系统 Vim,gcc,g++使用
Vim三种模式复制,剪切,删除基本操作复制:复制n行则:nyy复制当前光标所在的位置到行尾:y$复制当前光标所在的位置到行首:y^剪切:剪切n行:ndd剪切当前行光标所在的位置到行尾:d$剪切当前行光标所在的位置到行首:d^粘贴:用v选中文本之后可以按y进行复制,如果按d就表示剪切按p进行粘贴到光标所在行的下面按P进行粘贴到光标所在行的上面撤销与恢复:‘u...
2019-03-23 20:30:02 577
原创 细说C++(十五):说一下this指针
thisthis即位隐式的指针,指向调用者本身所有的成元函数都隐式得含有一个this指针#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;string&gt;using namespace std;class myclass{ public: myclass()=default; myclass(const...
2019-03-23 17:44:32 212
原创 细说C++(十二):指针与引用
指针类型1 void* 空指针2 空指针 (指针为空)3 空悬指针(无效指针)4 函数指针&amp;指针函数5 多重指针
2019-03-23 17:06:37 191
原创 玩转Linux GDB调试(详细)
启动1、 gdb < program >program也就是你的执行文件, 一般在当然目录下。2、 gdb < program > core用gdb同时调试一个运行程序和core文件, core是程序非法执行后core dump后产生的文件。3、 gdb < program > < PID>如果你的程序是一个服务程序, 那么你可以指...
2019-03-23 16:01:15 689
原创 细说C++(十一):成员访问运算符
点运算符“.” 其中点运算获取类对象的一个成员(1)如果成员所属的对象是左值,则结果是左值(2)如果成员所属的对象是右值,则结果是右值箭头运算符“->”, ,箭头运算获取指针指向对象的成员: 箭头运算符作用一个指针的运算对象,结果为左值表达式ptr->men等价于(*ptr).mem:举例:string s = “hello”, *p = &s;...
2019-03-22 17:07:20 5161
原创 I/O复用之select,poll,epoll (一)
I/O复用:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作select函数原型#include <sys/select.h>int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *time...
2019-03-21 14:27:24 145
原创 sizeof类对象大小解析
sizeof对象空间布局结论 非静态成员变量 所占空间 编译器为CPU所做的数据对齐处理 支持虚函数所产生的虚函数表,指针 (即为类对象所占空间大小)以下依次举例说明:C++中每个空类型的实例或者此类需要占 l Byte 空间(注意:构造函数和虚构函数不占用对象空间)#include <iostream>using namespace st...
2019-03-18 12:49:56 756
原创 C++单例模式
// Singleton 单例模式 class A{ public: static A& getInstance ( return a; ); setup() { ... } private: A(); A(const A& rhs); // 将构造函数置于private内 st...
2019-03-17 22:38:21 133
原创 细说C++(二十一):C++浅拷贝与深拷贝
问题: 如果类中有指针成员,则必须有拷贝构造函数和拷贝赋值函数深拷贝和浅拷贝的区别是在对象状态中包含其它对象的引用的时候,当拷贝一个对象时,如果需要拷贝这个对象引用的对象,则是深拷贝,否则是浅拷贝如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所以,此时,必须采用深拷贝深拷贝会从堆空间中另外申请数据来存储数据...
2019-03-17 16:13:46 189
原创 彻底解决VS加载符号与查找PDB文件问题
问题描述:1; 如下图:VS提示无法查找或打开PDB文件解决方案:如下(网上搜索博客,能够找到一大丢类似的解答)菜单栏:调试 -> 选项 -> 常规 -> 调试 -> 符号 --Microsoft符号服务器(如下图:)2; 如下图:VS显示加载符号慢(额…,是让人无法忍受得慢)解决方案:如下(网上搜索博客,能够找到一大丢类似的解答)打开VS的【工...
2019-03-16 18:31:39 36123 9
原创 errno 值的宏定义
输入cd /usr/include/asm-genericlsgedit errno.h 或者 vim errno.h查看或者使用man手册man 3 errno以下摘自 /usr/include/asm/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */#ifndef _A...
2019-03-14 16:29:15 746
原创 辨别系统小端or大端字节序
如下实例程序:-Linux(Ubuntu)#include <stdio.h>#include <stdlib.h>#include <unistd.h>void byteorder(){ union { short value; char union_bytes[sizeof(short)]; }test; test....
2019-03-12 16:47:32 163
原创 辨别系统32&64位
基本数据类型的大小判断指针: 8字节 64位系统 4字节 32位系统测试程序:#include <iostream>#include <cstdio> using namespace std;int main(){ int *a; cout<<sizeof(a)<<endl; //指针大小 ...
2019-03-12 15:41:48 340
原创 细说C++(十四):数组名,初始化问题
数组名!= 指针表达式计算 数组名和指针等效int a[5], *p = a, *q;q = a + 1;q = p + 1;(解释: 数组名在a+1的过程转化为指针隐式转化,因此上面的两个式子是等效的结果,而不是等价的过程)C/C++中,数组类型跟指针类型是两种不同的派生类型,两种不同类型的实体是不能等价的a在表达式中会转换为一个非对象的符号地址,而指针a却是...
2019-03-10 17:59:12 270
原创 Linux操作系统:进程间通信(一)共享存储
进程间的七大通信方式signal、file、pipe、shm、sem、msg、socket信号,文件,文件锁,管道(FIFO,Pipe),消息队列,信号量,共享内存,unix域套接字一: signal:信号通信的目的: 某某事件发生!此时需要处理什么,进程间(可以是不相关的进程)传递信号场景: 信号又被称之为中断,需要处理什么对应的是中断处理函数,此时设置断点,形参入栈,保存现场信息...
2019-03-10 11:29:49 245
原创 Vue项目搭建流程
一、 node.js安装Vue项目通常通过webpack工具来构建,而webpack命令的执行是依赖node.js的环境的,所以首先要安装node.js。node.js的官方地址为:https://nodejs.org/en/download/,下载相应版本。二、 安装完毕之后,在命令行下验证是否安装成功:输入nmp,显示如下就表示安装成功。三、 cnpm的安装安装命令为:npm ins...
2019-03-05 15:13:02 288
转载 一些好的开源C++代码分享
1、leveldb ——google出品的键/值对(Key/Value Pair)嵌入式数据库2、Boost.Asio ——服务器框架3、tinyxml——xml解析器4、tinyhttpd——http服务器5、cJSON ——json解析器6、Memcached —— 一个高性能的分布式内存对象缓存系统7、SQLite——开源的嵌入式关系数据库8、Webbench——是一个在li...
2019-03-05 12:00:19 1853
转载 Linux系统文件,资源相关总结
文件描述符// 查看当前session中的fd数量限制ulimit -n// 修改当前session中的fd数量限制ulimit -n your_need可以在一个终端使用以上命令,另外再打开一个进行查看。使用实例:在程序中,可以使用系统函数进行修改#include &lt;sys/resource.h&gt;struct rlimit{rlim_t rlim_cu...
2019-03-05 10:33:06 231
ACM程序设计曾宗根(STL学习)
2018-05-19
Thinking in Java中文版
2018-05-19
VS卸载之后不能安装(闪退)各版本均已尝试
2018-10-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人