自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 GDB调试

gdb调试说明

2022-12-04 20:14:26 531 1

原创 TLE5012B磁编码器解算角度和角速度

1. 写本文是为了记录调试该模块所遇到的问题以及解决办法,同时是为了方便日后回顾。2. SPI通信和SSC通信 TLE5012B编码器的通信方式为SSC通信,兼容SPI通信,网上已经有很多兼容配置方案,在这里不一一赘述了,链接1,链接2。 但是在这里,我使用的方案与上述方案不一样,我使用的是SPI的双线单工同步传输。STM32的SPI配置代码如下:重点在Direction。 hspi4.Instance = SPI4; hspi4.Init.Mode = ...

2022-03-22 09:02:11 4839 3

原创 C++中全局变量和静态变量析构顺序

第一种情况:代码:A a;int main(int argc, char **argv){ static C c; B* b = new B; D d; delete b; return 0;}结果:第二种情况:A a;static C c;int main(int argc, char **argv){ B* b = new B; D d; delete b; return 0;}结果:第三种情况

2021-05-22 19:38:53 1040

原创 不能远程连接Mysql

ubuntu系统安装了Mysql后,使用远程数据库连接软件SQLyog无法连接。根据网上所找的资料,需要修改mysql表中root用户的host权限为’%’,并使用flush命令刷新。但是SQLyog依然提示不能连接。之后经过一阵子分析排查,发现可以看到红框内是127.0.0.1。在/etc/mysql/mysql.conf.d目录下有两个目录打开mysqld.cnf文件(也就是更改Mysql默认端口的目录)将红框内改为0.0.0.0重启mysql服务 service mysql res

2021-05-17 21:15:43 102

原创 为何epoll的ET模式文件要设置为非阻塞?

是因为ET模式只在socket描述符状态发生变化时才触发事件,如果不一次把socket内核缓冲区的数据读完,会导致socket内核缓冲区中即使还有一部分数据,该socket的可读事件也不会被触发。因此一般使用下面这行代码循环读数据。while( (len=recv(fd,buf,sizeof(buf),0)) > 0 )如果文件IO设置为阻塞,则必然会阻塞在这里,造成没办法重新获取epoll_wait()事件。因此ET模式下文件IO一定要设置为非阻塞。...

2021-04-26 20:54:58 1285 1

原创 c++中explicit的作用

仅含一个参数的构造函数和除了第一个参数外其余参数都有默认值的多参构造函数承担了两个角色。(1)是个构造函数;(2)是默认,且可以承担隐式类型转换的功能。explicit的作用:在c++中,explicit只能用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。例子(1) 未加入explicit class Circle { public: Circle(double r) : m_R(r) {} Circle

2021-04-26 15:11:11 1960

转载 流和文件的区别

前面介绍的Linux下的文件编程所涉及的操作方式都是不带缓冲的I/O,因为每次调用相应的函数比如说read、write等对文件进行操作的时候都会调用内核的系统调用,由于每次都要通过内核对文件进行操作,所以操作效率比较低,对于流编程来说,首先对文件所映射的流进行操作,然后分阶段将相应的数据写入文件,极大地提高了相应的操作效率。Linux也提供了很多流操纵库函数,称为标准I/O库,是ISO C的组成部分。文件的I/O函数都是针对文件描述符进行操作的,比如说当调用open或者其他函数打开一个文件,返回一个文件

2021-04-22 17:14:33 641

转载 C++中各种标准输入函数的总结

scanf()函数原型:int scanf(const char *restrict format,…);入口参数:第一个参数是格式字符串,它指定了输入的格式,…格式化后的字符串存取地址。返回值:函数返回值为int类型,如果读取到了“文件结束”则返回EOF,EOF为Ctrl+z或者Ctrl+d。其他情况则返回int型数字,例如:int res = scanf("%d %d",&a,&b);如果a,b都读取成功,则返回2;如果a,b只读取成功了一个,则返回1;如果a,b都没有读取成功,.

2021-04-20 20:13:07 395

原创 关于浮点数做大小比较的注意点

因为计算机中表示小数时(float,double),都是有误差的,因此在判断两个小数是否相等或者一个浮点是是否等于0时,只能判断它们之差的绝对值是不是在一个很小的范围内。#define FLOAT_EPS 1e-6#define DOUBLE_EPS 1e-15 float f_float,f1_float,f2_float;double d_double,d1_double,d2_double; /* 要判断一个单精度浮点数等于0 */if( fabs(f_float) <= FLO

2021-04-20 20:11:49 296

原创 C++中使用cin之后再使用getline出问题的解决办法

以下代码出现的问题:int main(int argc, char **argv){ int a,b; cin >> a >> b; cout << a+b <<endl; string line; getline(cin,line); return 0;}使用cin >> a >> b;之后再使用getline(cin,line);发现程序执行完cin >> a &

2021-04-18 17:01:52 1321

原创 C++之set容器特性

setkey是独一无二的,不可以重复keyset插入的数据是排序好的insert()插入数据

2021-04-18 13:06:53 456

原创 win下VSCode之C++开发环境搭建

win下开发环境搭建1. gcc编译器安装和环境配置下载mingw-64编译器压缩包,并解压放在C盘目录下设置环境变量将mingw64目录下的bin文件夹路径放在win的Path环境变量中。2. 代码编辑首先打开VScode,如下图选择文件,打开文件夹在弹出的窗口选择一个文件夹作为保存代码的工作空间,这里我选择桌面的一个文件夹。...

2021-04-14 21:18:36 65

原创 C++中static const与static constexpr的类内变量成员初始化

1.一般static类内成员变量class A {public: static int i1; static bool b1; static char c1; static float f1; static double d1; //以下错误,不能将一般static类型的变量在类内初始化,只能进行声明 //static int i2 = 2; //static bool b2 = true; //static char c2 = 'c'; //static float f2 =

2020-12-31 15:49:26 3710 2

转载 C++中“非常量引用的初始值必须是左值”的处理方法

转自:https://blog.csdn.net/qq_27923041/article/details/950600941 左值和右值在C++中,左值可以出现在赋值语句的左边和右边;右值只能出现在赋值语句的右边,不能出现在赋值语句的左边。变量是左值,常量是右值。2 引用引用(reference)为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过在变量名前添加“&”符号来定义。引用具体的使用方法请参考《C++的引用与重载函数》。3 非常量引用的初始值必须是左

2020-12-16 21:02:02 658

原创 C++的bool类型初始化问题

C++中的bool类型必须要进行初始化,否则分配的内存单元是随机乱码。

2020-08-31 20:29:16 2194 1

原创 C++创建二维数组

C++中利用vector创建二维数组二维数组的创建vector <int> vec(10,90); //将10个一维动态数组初始为90vector<vector<int>> vec(row,vector<int>(col,0)); //初始化row * col二维动态数组,初始化值为0二维数组长度获取int row = vec.size(); //获取行数int col = vec[0].size(); //获取列数二维数组赋值

2020-08-12 15:08:50 131

转载 Linux netstat 命令详解

Linux netstat 命令详解netstat常用命令参数netstat输出结果分析套接口类型状态说明常用命令展示显示网卡列表显示组播组的关系显示网络统计常用组合显示路由信息统计机器中网络连接各个状态个数把状态全都取出来后使用uniq -c统计后再进行排序查看连接某服务端口最多的的IP地址找出程序运行的端口在 netstat 输出中显示 TCP连接信息转载:https://www.cnblogs.com/ftl1012/p/netstat.htmlnetstat命令用于显示与IP、TCP、UDP和I

2020-08-06 15:32:32 200

原创 设计模式之八大原则

单一职责原则开放-封闭原则依赖倒转原则Liskov替换原则接口隔离原则优先使用对象组合,而不是继承封装变化点针对接口编程,而不是针对实现编程

2020-07-16 21:39:17 89

原创 大话设计模式之简单工厂模式和策略模式(C++实现)

总结两者的实现代码区别简单工厂模式代码策略模式代码main函数调用代码区别简单工厂模式代码CashSuper* CashFactory::createCashAccept(char type) { //简单工厂模式 CashSuper *cs = NULL; switch (type) { case 'n': cs = new CashNormal(); break; case 'r': cs = new CashReturn(300, 100); break; case

2020-07-03 21:24:32 264

转载 C++之四个智能指针

C++的四个智能指针1.auto_ptr(c++98的方案,cpp11已经抛弃)2.unique_ptr(替换auto_ptr)3.shared_ptr4. weak_ptrC++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被11弃用。为什么要使用智能指针:智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因

2020-06-22 21:19:08 158

原创 C++之指针常量和常量指针区别

普通变量:int a=1; //整型变量const int b=2; //常量int const b=2;//这里定义和上面定义是一个意思,建议按照上面的规范写代码指针:普通指针int *p; //普通整型指针p=&a;int *p=&a;//此处与上面定义赋值是一样的,在此写出,只是为了下面的对比。*p=2;//可以更改指针指向变量的值,相当于变量a的值被更改为2int c=3;p=&c;//也可以更改指针的指向,相当于由指向变量a转变为指向变量c/

2020-06-06 21:43:40 217

原创 python使用pip install ~~ 安装出现问题ERROR: Exception

使用pip install opencv-python 出现以下错误:Traceback (most recent call last): File "E:\Python3_8\lib\site-packages\pip\_vendor\urllib3\response.py", line 397, in _error_catcher yield File "E:\Python3_8\lib\site-packages\pip\_vendor\urllib3\response.py", ...

2020-05-08 22:59:56 4066 3

原创 linux常用命令--(个人觉得暂时常用,持续更新)

linux常用命令大全shell命令行下命令shell命令行下命令shutdown -h now 立即关机

2020-04-23 20:58:38 171

原创 Linux远程登陆,解决ctrl+S,屏幕锁死问题。

ctrl+s 暂停屏幕输出ctrl+q 恢复屏幕输出ctrl+l 清屏,和clear作用一样ctrl+d 退出用户ctrl+c 结束当前正在运行的程序

2020-04-23 17:21:26 300

原创 GBK和UTF8的区别

含义:都是一种字符编码。GBK编码是“国标”,包含有中文简体和中文繁体字符。GB2312仅仅包含有中文简体。UTF8编码是“国际标准”,包含世界全部国家文字字符。区别:如果你做的网站是用于国人使用,那么GBK和GB2312是首选。因为其包含内容相对少,体积小,所以网站打开速度快。...

2020-03-12 09:05:36 211

原创 C++之引用和指针区别

概念:指针是指向一块内存,保存的是所指向内存的地址。 引用是某块内存的别名。使用:指针在使用时需要在名称前加 *。 引用使用时可以直接使用名称。区别:指针可以指向空指针,并且可以更改指针的指向。指针理论上可以多级 int ***p; 引用在初始化时直接定义其指向,并且不能再更改,不能指向空指针。引用只能一级引用 int...

2020-02-05 11:34:23 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除