![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
技术从未如此性感
这个作者很懒,什么都没留下…
展开
-
ndk的坑
ndk踩坑记录原创 2022-11-15 17:02:00 · 308 阅读 · 1 评论 -
C++中打印uint64_t
C++格式化打印uint64_t原创 2022-08-09 11:48:13 · 2367 阅读 · 0 评论 -
Valgrind C++ 内存泄漏检测
https://valgrind.org/内存问题分类操作没有初始化的指针 操作被释放之后的指针 越界 内存泄漏 有分配,没有释放 malloc/new/new[] 和 free/delete/delete[] 使用混搭 两次释放内存Linux Valgrind 使用1、 下载源码https://sourceware.org/pub/valgrind/valgrind-3.17.0.tar.bz22、解压包 安装tar -jxvf valgrind-3.17.0.t...原创 2021-07-21 20:07:40 · 175 阅读 · 0 评论 -
ELF 文件
ELF是Executable and Linkable FormatExecutable:可执行,ELF文件将参与程序的执行(Execution)工作。包括二进制程序的运行以及动态库.so文件的加载。Linkable:可链接,ELF文件是编译链接工作的重要参与者。Linking View:从编译链接的角度来观察一个ELF文件。Execution View:从执行的角度(可执行文件或动态库文件)来观察一个ELF文件。...原创 2021-05-31 13:16:01 · 136 阅读 · 0 评论 -
utf8判断字符
utf8的规则比较简单:对于UTF-8编码中的任意字节B,如果B的第一位为0,则B为ASCII码,并且B独立的表示一个字符; 如果B的第一位为1,第二位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的一个字节,并且不为字符的第一个字节编码; 如果B的前两位为1,第三位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由两个字节表示; 如果B的前...转载 2019-01-21 17:40:58 · 1004 阅读 · 0 评论 -
C函数指针
void (*Func)(void);返回值void、无参数的函数指针可以指向任何类型的函数指针,类似于泛型 void * 可以接受任何类型的指针,类似泛型 使用的时候注意转换...原创 2019-01-25 18:53:43 · 190 阅读 · 0 评论 -
C++ cmakelist 记录一下坑
使用C11的thread时候,注意在不同系统里面编译不一样。有些需要添加pthread库比如ubuntu中:set(THREADS_PREFER_PTHREAD_FLAG ON)find_package(Threads REQUIRED)add_executable(main ${SRC_DIR})target_link_libraries(main Threads::Threa...原创 2019-01-06 13:03:57 · 2652 阅读 · 0 评论 -
C++11 lambda 表达式
语法[capture](parameters)->return-type{body}如果没有参数,空的圆括号()可以省略.返回值也可以省略,如果函数体只由一条return语句组成或返回类型为void的话.下面举了几个Lambda函数的例子:[](int x, int y) { return x + y; } // 隐式返回类型[](int& x) { ++x; }...原创 2018-12-27 18:08:38 · 216 阅读 · 0 评论 -
Boost.Asio 的多线程模型
Boost.Asio 有两种支持多线程的方式,第一种方式比较简单:在多线程的场景下,每个线程都持有一个io_service,并且每个线程都调用各自的io_service的run()方法。 另一种支持多线程的方式:全局只分配一个io_service,并且让这个io_service在多个线程之间共享,每个线程都调用全局的io_service的run()方法。每个线程一个 I/O Service...转载 2018-12-27 10:27:02 · 619 阅读 · 0 评论 -
asio 了解的那一点事
asio里面的io_service相当于一个任务队列,该任务队列里面的任务的执行是需要创建io_service当前线程的来执行的。可以通过io_service.post 等API 发出一个任务。注意必须调用io_service.run poll等API 任务才能被执行。当在一个线程里面创建多个io_service的时候,可以通过不同的io_service post的任务,任务被驱动执行...原创 2018-12-27 10:18:31 · 325 阅读 · 0 评论