c++
c++
帅的没朋友~
这个作者很懒,什么都没留下…
展开
-
boost
【代码】boost。原创 2024-03-14 10:48:45 · 314 阅读 · 0 评论 -
GDB交叉编译与问题解决
【代码】GDB交叉编译与问题解决。原创 2023-03-30 15:51:29 · 635 阅读 · 0 评论 -
socket setsockopt用法
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BO...原创 2021-08-11 14:50:25 · 1450 阅读 · 0 评论 -
socket编程错误
connect()遇到的Operation now in progress在connect()函数之前将套接字socket设为了非阻塞模式。改为在connect()函数之后设置即可Connection reset by peer的常见原因及解决办法1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。Socket默认连接60秒,...原创 2021-06-24 17:22:18 · 349 阅读 · 0 评论 -
vc 编译bug解决
1.error C4996: 'scanf': This function or variable may be unsafe这个问题一般使用以下几种解决办法:(1)scanf等类似的函数已经不太安全,要想保证程序的安全性,建议以后采用_s结尾的安全版本,但是很多以前的程序可能还是使用不安全的版本,那么下面给出去掉这种错误提示的几种办法。(2)在VS中新建项目的时候去掉“安全开发生命周期(SDL)检查”即可将错误转变成警告,使得使用不安全版本也不影响编译和运行,如下图所示。(3)在头文.原创 2021-07-21 13:35:49 · 511 阅读 · 0 评论 -
vs2015编译 时 char* 类型形参与LPWSTR 类型的实参不兼容 的解决办法
这是字符编码的问题,主要是因Unicode字符集,所以对于string的字宽度不一样,导致LPWSTR类型不能直接定义string类型的变量。在vs2010下, 解决办法见下图,工程->属性->常规->字符集:...原创 2021-10-09 14:46:56 · 1684 阅读 · 0 评论 -
vs2015 快捷键
1.格式化代码Ctrl+K,Ctrl+D 当前文档所有代码格式化选中代码,Ctrl+K,Ctrl+F 选中代码格式化原创 2021-10-12 16:05:18 · 229 阅读 · 0 评论 -
cmake 工程构建
cmake 工程构建一:CMakeLists.txt 基本框架二:编译静态库或者动态库三:find_package()四:module和config模式五:引入第三方库文件六:编译选项指定七:交叉编译配置八:配置option可选选项九:安装十:参考资料一:CMakeLists.txt 基本框架工程目录结构:根目录./CMakeLists.txt:# 指定cmake版本,只需要指定大版本和小版本即可cmake_minimum_required(VERSION 3.10)# 指定项目名称,项目版原创 2022-04-17 16:08:34 · 2038 阅读 · 0 评论 -
linux 查看动态库和可执行程序依赖库
目录一:objdump二:readelf三:ldd四:进程是否依赖指定一:objdump# 查看依赖的库objdump -x xxx.so | grep NEEDED# 查看可执行程序依赖的库objdump -x ./testTime | grep NEEDED二:readelf# 查看依赖的库readelf -a xxx.so | grep "Shared"# 查看可执行程序依赖的库readelf -a ./testTime | grep "Shared"# 查看依赖的库原创 2022-04-17 11:19:31 · 4025 阅读 · 0 评论 -
vscode 大纲预览找不到文件符号
问题:vscode 大纲 文档中找不到符号原因:缺少c/c++必要插件解决办法:安装插件:名称: C/C++ID: ms-vscode.cpptools说明: C/C++ IntelliSense, debugging, and code browsing.版本: 1.8.4发布者: MicrosoftVS Marketplace ...原创 2022-02-27 10:53:27 · 3732 阅读 · 0 评论 -
c++ 单例模式
1. 什么是单例模式单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。定义一个单例类:私有化它的构造函数,以防止外界创建单例类的对象; 使用类的私有静态指针变量指向类的唯一实例; 使用一个公有的静态方法获取该实例。2. 懒汉版(Lazy Singleton)教学版,即懒汉版(Lazy Singleton):单例实例在第一次被使用时才进行初始化,这叫做延迟初原创 2022-02-22 18:57:37 · 22876 阅读 · 3 评论 -
openwrt uci c api
一:UCI文件语法config 'section-type' 'section'option 'key' 'value'list 'list_key''list_value'config 节点 以关键字 config 开始的一行用来代表当前节点 section-type 节点类型 section 节点名称option 选项 表示节点中的一个元素 key 键 ...原创 2022-02-22 18:49:47 · 623 阅读 · 0 评论 -
linux 串口编程
Linux下串口编程转载 2022-02-16 10:36:25 · 57 阅读 · 0 评论 -
c/c++ notify/wait 消息机制
相关头文件和函数#include <condition_variable>#include <mutex>std::condition_variable()std::wait()std::notify_one()std::notify_all()#include<iostream>#include<thread>#include<vector>#include<list>#include<m.原创 2022-01-13 10:33:58 · 2188 阅读 · 0 评论 -
c++ 继承
一:构造函数构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。子类构造函数必须要调用父类的构造函数(无论显式还是隐式),本质原因在于继承的性质决定了必须先有父再有子...原创 2021-10-12 17:26:21 · 52 阅读 · 0 评论 -
c++ map
一:赋值 1.直接赋值 map<string, int> m1; m1["def"] = 2; 2.使用insert map<string, int> m2; m2.insert({ "abc", 1 }); //使用这种就可以了 //其他形式和方式 m2.insert(make_pair(string("def"), 2)); m2.insert(pair<string,...原创 2021-10-12 17:13:26 · 67 阅读 · 0 评论 -
c++ file 操作
1.ifstream 头文件:#include <iostream>#include <fstream>#include <cassert>#include <string> 逐行读入文件:void readTxt(string file){ ifstream infile; infile.open(file.data()); //将文件流对象与文件连接起来 assert...原创 2021-10-12 17:01:18 · 2958 阅读 · 0 评论 -
Makefile 变量
$@表示目标文件$^表示所有的依赖文件$<表示第一个依赖文件$?表示比目标还要新的依赖文件列表= 延时变量,只有被使用时才展开定义:= 立即变量,定义时的赋值立即有效?= 条件变量,当变量为空时才赋值+= 追加赋值...原创 2021-09-23 11:38:07 · 66 阅读 · 0 评论 -
C语言宏函数
1.#define Conn(x,y) x##y表示x连接y。举例:int n = Conn(123,456);结果就是n=123456;char* str = Conn("asdf", "adf");结果就是 str = "asdfadf";2.#define ToChar(x)#@x给x加上单引号,结果返回是一个const char。举例说:char a = ToChar(1);结果就是a='1';...原创 2021-07-07 10:35:51 · 938 阅读 · 0 评论 -
c/c++ time
1.获取以秒为单位的时间戳1.1 C++风格#include <iostream>#include <ctime> int main(){ std::time_t t = std::time(0); // t is an integer type std::cout << t << " seconds since 01-Jan-1970\n"; return 0;}1.2 C风格#include <原创 2021-09-16 11:09:49 · 90 阅读 · 0 评论 -
cJSON
关于 Json 这种数据格式,在前面已经做了详细的介绍Json 的格式和用途,在项目开发过程中我们需要针对不同的语言使用不同的库对 Json 格式的数据进行解析,下面给大家介绍一个基于 C 语言的 Json 库 – cJson。cJSON 是一个超轻巧,携带方便,单文件,简单的可以作为 ANSI-C 标准的 JSON 解析器。cJSON 是一个开源项目,github 下载地址:https://github.com/DaveGamble/cJSONcJSON,目前来说,主要的...原创 2021-09-08 11:46:08 · 451 阅读 · 0 评论 -
c++ brpc
1.书写protoc2文件: protoc文件是谷歌出品的网络通讯规范,他被brpc用作底层消息结构模块。 按照自带的example,echo_c++中的protoc文件定义,我们可以先复制到一个自己的目录。proto文件定义了客户端和服务端的请求、相应的消息格式。syntax="proto2"; //指定proto版本option cc_generic_services = true; //设置为生成C++类message MsgClient{ ...原创 2021-08-26 13:15:52 · 1114 阅读 · 0 评论 -
c/c++ protobuf 序列化 反序列化
一:序列化二:反序列化原创 2021-08-24 13:08:18 · 1899 阅读 · 0 评论 -
c/c++ struct和char*互转
(原创)结构体自动化转为char数组的实现 - qicosmos(江南) - 博客园 (cnblogs.com)转载 2021-08-24 13:04:08 · 5132 阅读 · 0 评论 -
c/c++ 并发编程 锁
一:std::mutex二:std::lock_guard原创 2021-08-20 09:53:40 · 138 阅读 · 0 评论 -
大端模式,小端模式,相关函数
在C/C++写网络程序的时候,往往会遇到网络字节顺序和主机字节顺序的问题。这就要能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数:htonl()--"Host to Network Long"ntohl()--"Network to Host Long"htons()--"Host to Network Short"ntohs()--"Ne...原创 2021-08-20 09:35:58 · 216 阅读 · 0 评论 -
Linux C++ protoBuf
一:编译protoBuf源码二:引用头文件和库文件三:事例原创 2021-08-19 15:22:08 · 449 阅读 · 0 评论 -
c++ 类内部定义线程函数访问类内部成员
C++类成员函数使用时,都会隐式传递一个this指针给该函数,this指针指向该类的对象。函数体可以通过显示调用该指针或直接访问类内成员。回调函数是通过指针调用的函数,最常使用的回调函数就是在创建线程时,以一个函数指针以及传递给这个函数多个参数来调用线程函数来创建线程。那么一般的类成员函数是不能用作回调函数的,因为库函数在使用回调函数时,都会传递指定的符合回调函数声明的的参数给回调函数,而类成员函数隐式包含一个this指针参数,所以把类成员函数当作回调函数编译时因为参数不匹配会出错。 std::t...原创 2021-08-13 17:49:37 · 760 阅读 · 0 评论 -
C++ 静态成员变量要在类外部再定义或初始化的原因
C++中静态成员变量要在类外部再定义或初始化,否则会产生错误。class A{public: static int a;};int A::a=0;为什么要在类的外部进行定义的原因:1. 在类中,只是声明了静态变量,并没有定义。 2. 声明只是表明了变量的数据类型和属性,并不分配内存;定义则是需要分配内存的。 注意:如果在类里面这么写int a; 那么是既声明了变量,也定义了变量,两者合在一起了。3. 静态成员是“类级...原创 2021-08-11 17:44:30 · 3118 阅读 · 0 评论 -
c++ 双冒号(::)
一:作用域符号作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。如:A,B表示两个类,在A,B中都有成员member。那么 A::member就表示类A中的成员member B::member就表示类B中的成员member二:全局作用域符号全局作用域符号:当全局变量在局部函数中与其中...原创 2021-08-10 10:13:30 · 92 阅读 · 0 评论 -
c++ 时间处理
1.CTime头文件及输出时间#include<iostream>#include<atltime.h>using namespace std;int main(){ CTime time = CTime::GetCurrentTime(); CString date = time.Format(_T("%Y-%m-%d %X")); wcout << date.GetString() << endl; syste...原创 2021-07-21 15:18:14 · 55 阅读 · 0 评论 -
C++ const 关键字
c++ const关键字使用原创 2021-07-21 15:19:12 · 260 阅读 · 0 评论 -
c++ 文件操作
c++ 文件操作相关类:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)文件打开方式一:ofstream file ("example.bin", ios::out | ios::app | ios::binary);方式二:ofstream file;file.open ("example.bin",原创 2021-07-27 14:09:24 · 1123 阅读 · 0 评论 -
c++ string 字符串操作
string,char操作与相互转换原创 2021-07-27 14:10:17 · 456 阅读 · 0 评论 -
undefined reference to symbol xx@@GLIBC_2.2.5
undefined reference to symbol xx@@GLIBC_2.2.51. 添加-lm,通过,这个要放在最后原创 2021-08-05 14:56:49 · 594 阅读 · 1 评论