- 博客(56)
- 资源 (7)
- 收藏
- 关注
原创 CRC16 Modbus C代码实现
CRC16 多项式x16+x15+x2+1 对应十六进制0xA0011unsigned short crc16Cal( unsigned char const* pStr, unsigned char length ){ unsigned int crcValue = 0xFFFF; for ( unsigned char index = 0; index < length; index++ ) { crcValue = crcValue ^ *.
2021-11-01 10:32:49 347
原创 标准C库源码地址
The GNU C Libraryhttps://www.gnu.org/software/libc/newlib C库源码The Newlib Homepage (sourceware.org)https://sourceware.org/newlib/
2021-09-17 15:10:45 2547
原创 Qt for MCU+vs2019提示Unexpected compiler version
将C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm\bin\libclang.dll
2021-06-01 10:27:28 610
原创 Qt 编译 MySQL
首先你要有Qt的源码,如果安装Qt的时候没有安装源码需要从http://download.qt.io/archive/qt下载对应版本single目录下的源码。然后从https://downloads.mysql.com/archives/community/下载mysql的库文件。一:打开mysql.pro项目 我的路径是:E:\Qt\Qt5.13.2\5.13.2\Src\qt...
2020-04-09 19:14:41 340
原创 关闭谷歌chrome,"Chrome未正确关闭,是否恢复页面"的提示
C:\Users\userName\AppData\Local\Google\Chrome\User Data\Default修改Preference文件中的exit_type的值为Normal, exited_cleanly:true, 保存退出然后修改Preferrence文件的属性为只读命令行启动方法:--incognito 以隐身模式启动...
2019-08-21 10:48:43 10592
原创 QT release模式,qDebug输出到日志文件
包含头文件#include <stdafx.h>main函数的QApplication app(argc, argv);下面加入installMessageHandler();#ifndef STDAFX_H#define STDAFX_H#include <QByteArray>#include <cstdio>#include <Q...
2019-07-30 11:06:59 2893 1
原创 ubuntu 安装qt,配置环境变量
Qt安装后qmake命令还不能直接使用,需要将Qt的bin目录添加到Path中:第一种;添加到/etc/profile,这种方式作用于系统中的所有用户执行命令: vi /etc/profile,在末尾插入如下内容:export QTDIR=/opt/Qt5.12.3/5.12.3export PATH=$QTDIR/gcc_64/bin:$PATHexport LD_LIBRARY_...
2019-07-17 16:48:05 6354
翻译 分享cygwin 安装 ffmpeg
源:http://www.mediaentertainmentinfo.com/2014/01/1-technical-series-how-to-compile-ffmpeg-under-cygwin.html/
2019-07-02 09:53:22 795
翻译 分享一个ubuntu 安装ffmpeg的脚本
源:https://gist.github.com/sparrc/026ed9958502072dda749ba4e5879ee3#!/usr/bin/env bash# Installs ffmpeg from source (HEAD) with libaom and libx265, as well as a few# other common libraries# bina...
2019-07-02 09:46:31 389
原创 ffmpeg4.1.3 rgb转yuv
https://blog.csdn.net/asahinokawa/article/details/80596655 YUV存储格式// QImage 的构造:QImage image(rgb_buffer, 1920, 1080, QImage::Format_RGB32);void writeRGB32BufferToYuv420P(QImage& image){ ...
2019-06-28 17:07:33 421
原创 cmake vs2017
选择命令工具cmd窗口64位: cmake -G "Visual Studio 15 2017 Win64" -S 源码路径 -B 构建目录32位:cmake -G "Visual Studio 15 2017" -S 源码路径 -B 构建目录
2019-06-28 15:10:20 1014
翻译 cygwin使用apt-cyg
原文:https://www.imooc.com/article/247113新建文件apt-cyg,写入下面内容#!/bin/bash# apt-cyg: install tool for Cygwin similar to debian apt-get## The MIT License (MIT)## Copyright (c) 2013 Trans-code Desig...
2019-06-27 14:42:58 1039
转载 程序Locale与字符集通透讲解
转载原文地址https://www.cnblogs.com/dolphi/p/3622439.html ,本文对转载文章做个排版。locale是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面: 看中文,写中文,与 window中文系统的兼容和通信。 从实际经验上看来,locale的设定与看中文关系不大,但是...
2019-05-14 22:41:32 720
翻译 C++ shared_ptr
允许多个shared_ptr对象通过引用计数器管理同一块堆内存。堆内存释放条件: 引用计数器为0时,在shared_ptr析构函数中释放堆内存 调用成员函数operator=或者reset被其他指针替代时线程安全性: shared_ptr并不是所有的操作都是线程安全的,访问非const函数依然会发生数据竞争。 C++11提供了std:atomic_is_lock...
2019-05-11 19:53:24 830
原创 C++声明数组模板
template<typename T, size_t N>struct StructArr{};// 使用形式: StructArr<int[],2>template<typename T,size_t N>struct StructArr<T[],N>{ static const int Length = N;};//...
2019-05-11 12:22:18 1096
翻译 std::remove_extent返回数组降低一个维度后的数据类型, std::rank返回数组维度, std::extent返回数组第一个维度的长度
std::remove_extent返回数组降低一个维度后的数据类型。不改变数据类型的限制属性(const, volatile, const volatile)一维数组降低到0维度;二维数组降低到一维数组;三维数组降低到二维数组;std::extent返回数组第一个维度的长度std::remove_all_extents返回数组的实际类型, int[] -> ...
2019-05-10 23:33:05 1647
原创 C++全局operator重载替换友元operator
class Data{public: explicit Data(int val):m_val(val) { } const int getVal() const { return this->m_val; }private: int m_val;};// 重载全局operator==, 不用直接访问Da...
2019-05-09 19:54:49 618
原创 #define 函数重载
利用#define达到函数重载的目的通常和编译选项gcc/g++-D相关#define CALL(name) call_##name()void call_one(){ cout<<"call_one()"<<endl;}void call_two(){ cout<<"call_two()"<<endl;}v...
2019-05-09 19:03:28 815
原创 C++11 constexpr
使用constexpr关键字的变量和函数要求程序在编译期间就知道变量的实际数值和函数的实际返回值并且是而不是在程序运行期间才知道实际数值。而且constexpr语句当中涉及的变量都是const属性的。constexpr比const要求更严格,const可以接受在程序运行期间赋值。constexpr变量:constexpr int conVal = 12; // 等同 const in...
2019-05-09 18:00:20 185
翻译 C++ 非const成员函数调用const成员函数的重载版本
在C++中void func() const 和void func()可以形成重载函数,如果void func() const和void func()写同样的代码实现func功能,这样就造成了代码浪费(重复写代码)。这种问题的解决方式就是利用static_cast达到代码复用的目的(重复利用代码)。下面给出一个转换过程:// 实例只是为了讲述转换过程class TestBlock{...
2019-05-09 16:04:27 941
原创 c++ vector造成的内存泄漏
C++中的std::list, std::array, std::queue, std::map, std::set, std::vector, std::forward_list, std::multiset, std::multimap, std::stack, std::unorderd_map, std::unorderd_multimap, std::unorderd_set, std:...
2019-05-07 00:44:26 5395
原创 C++模板的几种写法
常规:tempate<class T>struct SName1{// statement};template<typename T>struct SName2{// statement};// 函数模板template<typename>void func(const T&){// statement}// ...
2019-05-05 22:53:59 1101
翻译 C++11 NullablePointer
1、一种类似于指针的类,可以和std::nullptr_t对象比较2、满足: 相等比较(operator==) 默认构造 copy构造 copy赋值 析构 可以作为bool条件表达式使用。空值返回false,否则返回true 不抛出异常class nullPointer final{public: nullPointer(con...
2019-05-05 01:41:04 258
原创 QML Qt.binding
Qt.bindding的执行由QML引擎监控,一旦满足绑定条件就会响应。第一种:为属性绑定一段代码Rectangle{ implicitWidth: 300; implicitHeight: 200; TextField { id: control1; implicitWidth: p...
2019-05-04 12:54:57 2537 1
原创 Qt C++加载qml的两种方式
一:qml的根节点是Item的可见派生类#include <QGuiApplication>#include <QQuickView>int main(int argc, char** argv){ QGuiApplication app(argc, argv); QQuickView viewer; viewer.setResizeM...
2019-05-03 11:39:17 2633
原创 如何理解深拷贝和浅拷贝
首先我们先记住一个结论:编译器自动生成的拷贝构造和赋值运算符是memcpy的一个过程。实例过程以结构体代替,在c++中struct和class除了默认访问权限基本等同。struct TestStruct1{ int arr[3]; int a;};int main(){ TestStruct1 oneVar; oneVar.arr[0]=1; ...
2019-04-30 23:06:37 366
原创 c++11 lambda表达式
lambda形式: [capture list](param list)->return_type { body } capture list: 捕获列表,只能是当前lambda表达式所在函数体的局部变量名,直接在body块使用。 param list : 函数参数,传参 return_type : 函数返回值类型,如果body只有一句return语句编译器可以自动...
2019-04-23 14:43:36 127
翻译 std::move,std::forward;std::remove_reference
/** 引用折叠* A& & 折叠成 A&* A& && 折叠成 A&* A&& & 折叠成 A&* A&& && 折叠成 A&&*/template<class _Ty>struct remove_reference{...
2019-04-22 23:52:50 657
原创 C++模板的声明与实现分离的方式
第一种方式:头文件声明模板,源文件实现模板,头文件末尾include源文件#pragma once// 类模板template<typename T>class TestClass{public: TestClass(const T&); void printFunc();};// 函数模板template<typename T&g...
2019-04-22 22:51:01 848
原创 C++间接释放内存造成野指针解决方法
// 考虑这种情况:通过指针赋值释放掉内存,再去解引用原始指针会怎么样int main(){ int* ptr = new int(1); int* pint = ptr; delete pint; pint = nullptr; if (ptr) { cout<<*ptr<<endl; // 使用野指针,其结果是不明确的...
2019-04-20 11:48:05 310
翻译 linux extern char** envrion
#include <stdio.h>extern char** environ;int main(int argc, char** argv){ unsigned int index=0; while(argv[index]) { printf("argv[%u]:%s, %p\n", index, argv[index], argv[i...
2019-04-14 10:27:55 745
原创 sizeof全面解析
sizeof: 计算变量或者类型的内存占用字节数。是运算符而不是函数。在编译期完成类型或者表达式的内存大小结果。sizeof(指针)在32位系统=4;在64位系统=8.sizeof不能求void类型的长度 sizeof可以求得void*的长度,按指针处理 sizeof可以求得静态分配内存的数组大小,在非堆区开辟内存的数组大小 sizeof不可以求动态分配内存的大小 sizeof在计...
2019-04-14 01:45:29 314
原创 单链表逆转
方法一: 本地逆转void localReverse(Node* head){ Node* pCur = head->next; Node* pNext = head->next->next; pCur->next = nullptr; pCur = pNext; while(pCur) { ...
2019-04-13 11:08:46 379
转载 visual studio 版本的Qt Creator找不到CBD调试器
转载于:https://blog.csdn.net/suima0v0/article/details/50973861第一种情况:第二种情况:Qt Creator->Tools->Options->Kits->Kits中的auto-detected部分带有黄色警告标识,提示No debuger set up在https://docs.microsoft....
2019-04-10 23:32:39 1617
原创 C++字符串比较
字符串的比较不完全是字符串长度的比较:1、首先是逐个字符的ASCII值的比较至到某个字符的ASCII值不一致或者其中一个字符串到达字符串末尾{ "abcd"与"ba"比较,"ba"大,因为"ba"的字符'b'比"abcd"的字符'a'的ASCII值大}2、如果字符串的前n个字符都一样就比较字符串长度,长度长的字符串大{ "abc"与"abcd"比较,"abcd"大。前三个字符的...
2019-04-10 10:10:05 3367
原创 C++11 字符串与数字的转化
数字到字符串:内部调用sprintf()函数std::string to_string( int value );std::string to_string( long value );std::string to_string( long long value );std::string to_string( unsigned value );std::string to_stri...
2019-03-27 11:31:37 760
原创 C++ auto类型推导注意事项
auto只能推导出数据的不加const,不加引用(&)的数据类型int ia = 12;auto aa1 = ia; // 此时aa的类型是int,相当于int aa = ia;int& ra = ia;auto aa2 = ra; // 我们希望aa2的类型是int&, 实际上aa2的类型是int。如果是class或者struct类型型,这里会调用copy...
2019-03-27 10:50:27 860
原创 多线程中的单例模式-C++
示例中使用模板创建单例对象,实际操作过程中换成具体类中实现。注意要求单例模式的类要把构造隐藏。#include <iostream>#include <mutex>using namespace std;mutex g_single_mutex;#define sync(action) g_single_mutex.lock(); action; g_sin...
2019-03-21 13:58:55 550
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人