![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 65
首飞爱玩机器人
我是首飞,一个帮大家填坑的工程师。
展开
-
【坑】这样用C指针可不行
最近有人问了我一个C语言中使用指针时遇到的问题。下面是一个简化后的代码示例。他的疑问是,为什么我修改了函数内的指针a,结果在函数外面指针a却并没有变化。这个其实是没有理解清楚变量的作用域。因为指针实际上也是一个变量。但我们常常把指针传入函数内部以便可以在函数内修改函数外面的某个变量值。从而被混淆地认为函数内也能改变传入的指针值。实际上,我们通常不会考虑通过函数的形参去改变函数外部的指针。原创 2023-07-19 22:46:14 · 197 阅读 · 0 评论 -
如何把函数写的整洁?
函数都写不好,确实有些丢人。如何把函数写的整洁呢?看了会书深有启发。这里使用C++语言来作为示例,但对其他语言的函数书写也有借鉴意义。原创 2023-05-31 21:23:05 · 105 阅读 · 0 评论 -
C++静态代码分析
这里记录一下使用`cppcheck`进行`C++`代码静态检测的方法和步骤。原创 2022-07-31 20:18:55 · 1108 阅读 · 0 评论 -
推荐两个C++API参考网站
C++ 标准库接口众多。在实际使用时如果不熟悉常常感到无从下手。阅读开源代码时,常常能看到使用C++新特性的优美代码,但却显得那么陌生。如果你也遇到这样的问题。下面两个C++ API 网站正好是你需要的利器。中文版C++ 参考手册https://www.apiref.com/cpp-zh/index.html这个网站已经支持到C++20了。除此之外,网站内也有接口的示例代码,方便了解怎么使用。让人惊喜的是,除了C++外,这个网站的主页上还收录了非常多其他的资源。AndroidDocker原创 2022-04-04 20:59:26 · 7546 阅读 · 0 评论 -
std::unique_lock的两个使用小技巧
unique_lock的简单介绍unique_lock类里维护了一个mutex对象。在unique_lock类拥有多个构造函数,这里只放两个本文涉及的构造函数。explicit unique_lock(mutex_type& __m): _M_device(std::__addressof(__m)), _M_owns(false){ lock(); _M_owns = true;}该构造函数会直接对mutex对象加锁。 unique_lock(mutex_type&a原创 2020-07-22 12:30:13 · 2009 阅读 · 2 评论 -
【CMAKE】使用CMAKE遇到的问题
AUX_SOURCE_DIRECTORY使用AUX_SOURCE_DIRECTORY(. SRCS)得到当前CmakeLists.txt目录下的源文件。用MESSAGE( STATUS “src_DIRS = ${SRCS}.”)打印出来得到的字符串,每个源文件前都加了**./**。如果直接将这些字符串加上到顶层CmakeLists.txt目录的相对路径,会得到下面的结果。每个源文件路径上都有一个点。导致所有的源文件都找不到。include_directories使用include_dir原创 2020-05-17 19:34:47 · 1926 阅读 · 0 评论 -
C++中atan()与atan2()的区别和用法
区别atan(x)函数接收一个参数。参数类型可参考下列函数声明。double atan (double x);float atan (float x);long double atan (long double x);double atan (T x); // additional overloads for integral types若有一个坐标A(a,b),...原创 2019-10-02 12:24:07 · 12585 阅读 · 0 评论 -
C++智能指针的使用
C++智能指针的使用unique_ptr功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入C++11中提供了三种智能指针...原创 2019-08-28 15:59:28 · 1613 阅读 · 0 评论 -
C++11/14运行时断言与静态断言
运行时断言与静态断言头文件#include <cassert> 中的assert是运行时断言,即当程序运行到assert处并该函数的形参计算出来为FALSE。程序会出现报错并退出。如果程序不运行到assert函数处是不会报错的。而静态断言指的是在编译阶段就进行报错。静态断言的实现代码如下:#define assert_static(e) \ do{ \ enum{asser...原创 2019-08-20 20:22:02 · 573 阅读 · 0 评论 -
C++函数模板的使用
C++函数模板的简单使用函数模板的基本形式函数模板的重载给函数模板传入常量的形式函数模板的基本形式函数模板的语法示例:template<typename T>T abs(T x){ return x<0?-x:x;}其中T可以指代任何类型。函数模板的重载函数模板的重载与普通函数的重载形式上是一样的。template<typename T>...原创 2019-08-20 18:17:59 · 339 阅读 · 0 评论 -
C/C++中结构体的字节对齐示例
1.下面这段代码取消了结构体字节对齐优化,运行的结果为5个字节。#include <stdio.h>#include <stdlib.h>#pragma pack(1)typedef struct IntPair_s { char c; int num;} IntPair;#pragma pack()int main(void) { size_...原创 2018-09-12 22:23:48 · 269 阅读 · 0 评论 -
正则表达式的语法
正则表达式是验证输入、从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式; Qt 提供了一个QRegExp类,它实现了Perl风格的扩展正则表达式语言的大部分功能: 正则表达式是一个字符的序列;1):特殊字符 . (匹配任何字符) \n (匹配换行符) \f (匹配...转载 2018-09-03 19:13:51 · 183 阅读 · 0 评论