c++
力宁
技术创造产品,产品成就技术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
拥抱c++ chrono 抛弃 c time
C++ chrono时间戳的一些操作原创 2023-03-10 10:47:41 · 587 阅读 · 0 评论 -
CMakeList的proto文件处理为CPP
CMakelist中将proto文件编译为c++源文件原创 2023-02-21 11:52:21 · 529 阅读 · 0 评论 -
VSCode代码格式GoogleStyle
VSCode配置GoogleStyle原创 2022-11-04 11:35:29 · 4386 阅读 · 0 评论 -
C++11 shared_ptr unique_ptr weak_ptr
C++11 智能指针原创 2022-08-16 12:01:48 · 495 阅读 · 0 评论 -
libcurl 的 curl_easy_setopt()
CURL *hCurl = curl_easy_init();curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYPEER, 1L);curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYHOST, 2L);1、HTTPS相关(1)CURL_VERIFY_PEER默认值为1,该参数表示是否验证HTTPS证书的合法性,就是用第三方证书机构颁发的CA数字证书来解密服务端返回的证书,来验证其合法性。可在编译时就将CA数字证书编译进去,.原创 2022-05-25 19:17:13 · 1478 阅读 · 0 评论 -
python和c/c++两者的变量区别
程序是由变量和函数组成的,变量是数据的载体,通过变量传入函数,完成对数据的处理后,返回新的变量。对于C/C++而言,程序员可以明确指定传递方式的,主要有:值传递、指针传递、引用传递。对于python而言,不允许程序员选择采用传值还是传引用,参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(dict、list、set、bytearry)的引用,就能修改对象的原始值,相当于‘传引用’来传递对象。如果函数收到的是一个不可变对象(int、doubl原创 2022-03-21 10:56:27 · 1730 阅读 · 0 评论 -
C/C++ 常见的内存泄露案例
在编程工作生涯中本人亲自写出的的或者见过的内存泄露案例记录。(1)使用三方C语言库错误情景分析:例如一些三方开源的C语言动态库,如:openssl等,API使用比较复杂,完成一个完整的逻辑需要调用多个API函数,其中会传入一些指针,由库提供的API函数帮用户完成对象的创建,同时也会提供相应的释放或销毁API函数,但往往再用完后就会忘记主动调用释放函数,来释放这些指针,造成内存的泄露。避坑指南:在使用三方不熟悉的库时,一定要自己先写一个死循环的Demo程序,运行起来之后,观看内存的变化。确原创 2022-03-21 09:58:53 · 1995 阅读 · 1 评论 -
linux select函数陷阱
代码样例一(正确用法):while (true) { FD_ZERO(&readfds); FD_SET(socket_fd, &readfds); time_wait.tv_sec = 0; time_wait.tv_usec = 500000; ret = select(socket_fd+1, &readfds, NULL, NULL, &time_wait); if ((ret <= 0) || (!F..原创 2021-10-26 11:56:09 · 551 阅读 · 0 评论 -
使用 openssl 计算 base64(防止内存泄露)
#include "openssl/bio.h"#include "openssl/evp.h"#include "openssl/buffer.h"int base64(const unsigned char *src, int src_len, unsigned char *dst, int *dst_len) { BIO *bio_hnd_mem = NULL; BIO *bio_hnd_meth = NULL; BUF_MEM *buf_mem_ptr = NUL.原创 2021-06-01 19:32:33 · 919 阅读 · 0 评论 -
c/c++ 字符串string转整数int和浮点数float
支持的字符串类型有:十六进制类型,例如:"0x123","0X123"整数类型,例如:"1000","-1000"浮点数类型,例如:"0x789","0X789","1.345","-1.345","1.23e-5", "1.23E-5","-1.23E+5"#include <stdio.h>#include <string.h>#include <stdlib.h>bool str_to_int(const char* str, con..原创 2021-05-17 15:19:11 · 979 阅读 · 0 评论 -
用docker打造一个ubuntu开发环境
1.背景我们在做ubuntu应用开发时,手中的开发电脑搭载的操作系统一般是windows或者macos。大多数人都会选择安装VMware或者VirtualBox。然后下载ubuntu对应发行版本的iso镜像安装一个虚拟机。而我们开发人员只需要借助ubuntu的编译器编译自己的代码而已,安装一个完整桌面版的ubuntu虚拟机显然太耗费个人电脑的资源了。因此,可以选择安装一个docker容器,小巧精简。下面介绍一下我在我个人MAC电脑上搭建ubuntu开发容器的过程。2.环境搭建2.1.原创 2021-03-26 14:22:43 · 8556 阅读 · 2 评论 -
yaml-cpp的实际使用注意事项
1、YAML语法yaml类似于json、xml。是一种标记语法。1.1、YAML语法基本规则(1)关于大小写:大小写敏感(2)关于层级关系:使用缩进表示层级关系,但缩进不允许使用tab,只允许空格。缩进的空格数不重要,只要相同层级的元素左对齐即可(3)支持注释:注释以'#'开头1.2、YAML 支持的数据类型:(1)对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)(2)数组:一组按次序排列的值,原创 2021-02-05 16:21:55 · 6123 阅读 · 1 评论
分享