![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 67
诗筱涵
邮箱:1372740910@qq.com 微信公众号:诗筱涵 技术交流群:960668018
展开
-
在C语言中,字符串总是以‘\0‘作为结尾
转载自:C语言字符数组和字符串_C语言中文网字符串结束标志(划重点)字符串是一系列连续的字符的组合,要想在内存中定位一个字符串,除了要知道它的开头,还要知道它的结尾。找到字符串的开头很容易,知道它的名字(字符数组名或者字符串名)就可以;然而,如何找到字符串的结尾呢?C语言的解决方案有点奇妙,或者说有点奇葩。在C语言中,字符串总是以'\0'作为结尾,所以'\0'也被称为字符串结束标志,或者字符串结束符。'\0'是 ASCII 码表中的第 0 个字符,英文称为 NUL,中文称为“空字符”。该字符既转载 2021-09-19 12:22:02 · 9766 阅读 · 0 评论 -
字符串查找函数:strchr、strrchr、strchrnul、strstr、strrstr
字符串查找函数:strchr、strrchr、strchrnul、strstr、strrstr_计量小菜鸡的博客-CSDN博客_字符串查找字符串查找函数:strchr、strrchr、strchrnul、strstr、strrstr计量小菜鸡 2019-03-26 14:16:2114238 正在上传…重新上传取消 收藏 27分类专栏: 嵌入式 基础C 字符串 文章标签: 字符串函数版权嵌入式 同时被 3 个专栏收录13 ...转载 2021-09-19 09:02:54 · 402 阅读 · 0 评论 -
Ubuntu下VSCode配置Clang-format,并在保存时自动格式化代码的方法(带配置文件)
Ubuntu下VSCode配置Clang-format,并在保存时自动格式化代码的方法(带配置文件)标签:c++VS Codeclang-format代码格式Ubuntu花了一上午解决,google和百度查的还都有点奇怪...不能解决问题,故Mark一下Ubuntu环境中,使用VSCode编译器,在保存时自动格式代码还是很方便的,有助于养成良好的编程习惯,也方便阅读一、在VSCode中下载内置的Clang-Format插件二、本来以为这么简单就可以了,其实...转载 2021-09-19 00:07:47 · 1319 阅读 · 0 评论 -
一些十分有用的字符串相关的函数,在写串口解析,TCP HTTP通信时有用
写串口TCP HTTP,这方面感受颇深,也遇到不少对吧。写数据解析时的常用函数在字符串中查找字符串。strstr我觉得有了str很多解析写起来会轻松快很多。字符串合并函数字符串连接函数strcat,这个可以好好用用_TYINY的博客-CSDN博客熟练用这两个函数写http应该还好感觉有必要总结一些字符串常用函数。还有strlen判断字符串长度,这个在TCP发送有用到https://gitee.com/maxibooksiyi/linux_udp_tcp_maxi_...原创 2021-09-12 00:39:59 · 238 阅读 · 0 评论 -
还有我发现他们定的字符串数组长度一般是33,而不是32
是不是最后一个放/0c语言将十进制数转换为16进制的函数_csu_yang的专栏-CSDN博客_c语言十进制转十六进制像这放的是32位的MD5的数,定义的也是33长度的字符串https://gitee.com/maxibooksiyi/linux_udp_tcp_maxi_test/blob/master/HTTP/hivisoion_projcet/digest/src/httpauth.c...原创 2021-09-14 11:07:56 · 175 阅读 · 1 评论 -
关于char 和char *类型,有时候函数需要char * 可以通过下面这种方式转换
关于char 和char *类型,有时候函数需要char * 可以通过下面这种方式转换https://gitee.com/maxibooksiyi/linux_udp_tcp_maxi_test/blob/master/HTTP/%E4%BE%8B%E7%A8%8B%E4%B8%80/httpclient.c原创 2021-09-14 10:46:23 · 254 阅读 · 0 评论 -
【C语言】 任意十进制数字转十六进制
转载自:【C语言】 任意十进制数字转十六进制 - 金舰 - 博客园大概思路:输入任意十进制数字 首先确定位数; 使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数; 最终效果:https://www.cnblogs.com/tao-zhu-forever/p/9126890.html【C语言】 任意十进制数字转十六进制大概思路:输入任意十进制数字 首先确定位数;使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数;#include <stdio.h&.转载 2021-09-13 22:15:00 · 6585 阅读 · 1 评论 -
printf打印字符串的时候可以printf(“%s“,buf);buf可以是字符串名或者指针
printf打印字符串的时候可以printf("%s",buf);buf可以是字符串名或者指针比如buf可以是 char buf[10] 也可以是 char *buf[10]原创 2021-09-13 10:58:24 · 915 阅读 · 0 评论 -
Makefile入门教程
转载自:https://mp.weixin.qq.com/s/mZu8Dn5fcPWjiZAODeCt2wMakefile入门教程一口Linux 今天以下文章来源于嵌入式情报局 ,作者情报小哥关注、星标公众号,直达精彩内容ID:嵌入式情报局作者:情报小哥1什么是Makefile 在之前学习C程序的编译过程中,我们知道编译一个程序还比较简单, 如果要编译多个文件,或者不同文件夹中的文件,需要生成不同的库文件,以及确定这些文件的编译先后顺序,往往所需要的命令行特别..转载 2021-08-29 16:13:34 · 1303 阅读 · 0 评论 -
CMake 使用方法 & CMakeList.txt
转载自:https://blog.csdn.net/u012150179/article/details/17852273CMake 使用方法 & CMakeList.txtcmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 使用方法CMake的所有的语句都写在一个叫:C...转载 2021-08-26 11:56:03 · 2813 阅读 · 0 评论 -
PX4代码里面见到很多变量命名是以下划线开头,如何理解
PX4代码里面见到很多变量命名是以下划线开头,如何理解这种似乎又叫下划线前缀?是有某种这样的规范么?当然远不止这么点啊,我在《一本书看懂多旋翼无人机》上面看到好多了,只是懒得一一列出来。https://gitee.com/amovlab/prometheus_px4/blob/Prometheus_PX4_1.11.1/src/drivers/optical_flow/px4flow/px4flow.cpp...原创 2021-08-04 18:03:33 · 158 阅读 · 0 评论 -
c++ primer和c++ primer plus的区别
c++ primer和c++ primer plus的区别https://www.php.cn/faq/439403.htmlhttps://zhidao.baidu.com/question/1733134743074152747.html原创 2021-08-03 18:40:14 · 10440 阅读 · 0 评论 -
ubuntu 下运行程序报错 对‘std::cout’未定义的引用
我今天就遇到了,果然换为C++就好了。转载自:https://blog.csdn.net/nicolaskaiqi/article/details/52814087?_t=tubuntu 下运行程序报错 对‘std::cout’未定义的引用NicolasKaiqi 2016-10-14 10:57:26 12708 已收藏 4分类专栏: ubuntu 文章标签: c++版权ubuntu专栏收录该内容5 篇文章 0 订阅订阅专栏在编译c++程序时运行gcc -o fileio转载 2021-07-28 18:29:42 · 2849 阅读 · 0 评论 -
普通C++工程的编译(cmake工程)
、https://blog.csdn.net/sinat_16643223/article/details/115282491原创 2021-03-28 21:25:09 · 218 阅读 · 0 评论 -
vscode的C++编译环境我最后是按照这个来弄了,确实就20秒。
https://www.bilibili.com/video/BV1r4411E7Be?p=120秒配置vscodeC++/C环境蓝鲸我努力奔跑的原因是为了,追上那个曾被寄予厚望的自己。折腾了好久的vscode配置,各种方法试过才配置出了一个像样点的C环境,谷歌找到了源自B站UP主的开源项目。方法:打开链接,https://github.com/SDchao/AutoVsCEnv_WPF/releases/latest下载AutoVsCEnv_WPF.V1....原创 2021-04-24 13:06:30 · 421 阅读 · 0 评论 -
Visual Studio Code 如何编写运行 C、C++ 程序?(高赞回答)
作者:谭九鼎链接:https://www.zhihu.com/question/30315894/answer/154979413来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。0. 前言本文面向初学者,每一步都比较详细。阅读本文能学习一些命令行、程序编译和调试,以及使用VS Code的知识。如果嫌本文说的麻烦,我给个精简版的:装gcc和c/c++扩展,打开文件夹,点开源代码,F1,build and debug active file,完。本文许多...转载 2021-04-24 09:22:13 · 2487 阅读 · 1 评论 -
C/C++类库大全(附github连接)
转载自:https://blog.csdn.net/qq_39850605/article/details/84789611C/C++类库大全(附github连接)@风轻云淡_ 2018-12-04 15:42:56 4590 收藏 37 文章标签: C C 第三方库C++ 资源大全中文版浏览中发现一篇总结的很全的c/c++类库,在此做记录,以备不时之需github地址(内有各个库的源码连接) https://github.com/jobbole/awesome-cpp-..转载 2021-03-22 22:08:55 · 2424 阅读 · 0 评论 -
头文件中定义和声明的问题 如果把定义放在头文件的话,就不能避免多次定义变量。C++不允许多次定义变量
这个我之前也看到过类似的。http://www.eepw.com.cn/article/201611/322421.htm1.头文件中不可以放变量的定义!一般头文件中只是放变量的声明,因为头文件要被其他文件包含#include,如果把定义放在头文件的话,就不能避免多次定义变量。C++不允许多次定义变量,一个程序中对指定变量的定义只有一次,声明可以无数次。...原创 2021-03-20 11:18:02 · 299 阅读 · 0 评论 -
C++中的.和::和:和->的区别
转载自:https://blog.csdn.net/k_koris/article/details/80469956在学习C++的过程中我们经常会用到.和::和:和->,在此整理一下这些常用符号的区别。 1、A.B则A为对象或者结构体; 2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针; 3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构; 4、:一般用来...转载 2021-03-13 22:05:06 · 216 阅读 · 0 评论 -
C++ class和struct的区别
我在《C++primer》里多次看到用struct了转载自:http://c.biancheng.net/view/2235.htmlC++ class和struct到底有什么区别< 类其实也是一种作用域 C++ string(C++字符串) >C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。C++中的 st原创 2021-03-13 19:40:59 · 148 阅读 · 0 评论 -
CMakeList.txt在大型文件应用(SLAM常用库添加依赖项)
摘自:https://zhuanlan.zhihu.com/p/149191302?utm_source=wechat_sessionCMakeList.txt在大型文件应用(SLAM常用库添加依赖项)晓伟LiuCSDN无人驾驶博客ID try_again_later基本的CMakeLists.txt并不难,主要有生成库、生成执行文件、链接二者以及找库find_package、找头文件include_directories、生成执行文件add_executable、链接库和执行文件tar转载 2021-02-24 19:07:57 · 573 阅读 · 0 评论 -
cmake 添加头文件目录,链接动态、静态库
摘自:https://www.cnblogs.com/binbinjx/p/5626916.htmlcmake 添加头文件目录,链接动态、静态库 罗列一下cmake常用的命令。CMake支持大写、小写、混合大小写的命令。1. 添加头文件目录INCLUDE_DIRECTORIES语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPL.转载 2021-02-24 18:05:16 · 825 阅读 · 0 评论 -
CMakeLists.txt模板+常用库头文件添加和库文件链接+调用头文件
摘自:https://blog.csdn.net/YMWM_/article/details/109022872CMakeLists.txt模板+常用库头文件添加和库文件链接+调用头文件YMWM_ 2020-10-12 11:11:08 563 收藏 3 文章标签: cmake linux版权CMakeLists.txt模板#声明要求的cmake最低版本cmake_minimum_required(VERSION 3.10)#设置c++版本set(CMAKE_CXX_STA转载 2021-02-24 17:11:46 · 2223 阅读 · 0 评论 -
CMake下头文件和链接库的使用
摘自:https://blog.csdn.net/weixin_38988633/article/details/92733610CMake下头文件和链接库的使用一叶一江秋 2019-06-17 22:33:02 3705 收藏 12 文章标签: CMake 头文件 链接库 c++版权一、头文件与链接库文件的区别头文件:申明函数接口库文件:存放函数的定义库文件通过头文件向外导出接口,用户通过头文件找到库文件中需要的函数实现代码进行链接至程序当中。二、静态链接库(lib)与动转载 2021-02-24 17:09:51 · 741 阅读 · 0 评论 -
静态库和动态库的区别
摘自:https://www.cnblogs.com/codingmengmeng/p/6046481.html静态库和动态库的区别什么是库 库是写好的,现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 所谓静态、动态是指链接。回顾一下,将一个程序编译成可..转载 2021-02-24 16:50:55 · 365 阅读 · 0 评论 -
个人总结的CMakeLists.txt和Makefile的区别(以及catkin_make和cmake的区别)
https://blog.csdn.net/sinat_16643223/article/details/113935412转载 2021-02-23 10:15:12 · 2746 阅读 · 0 评论 -
C语言的头文件包含竟然有那么多讲究!
摘自:https://mp.weixin.qq.com/s/4KSbqkaNp1WzNb3WKZBbDwC语言的头文件包含竟然有那么多讲究!嵌入式大杂烩 今天点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!链接:https://blog.csdn.net/fengcq126/前言很多事不深入以为自己懂了,但真正用到项目上,才发现了问题。曾以为自己写C语言已经轻车熟路了,特别是对软件文件的工程管理上,因为心里对自己的代码编写风格还是有自信的。(毕竟刚毕业时老大转载 2021-02-23 08:51:11 · 1103 阅读 · 0 评论 -
gcc、make、makefile、cmake、cmakelists区别 (这个我觉得说清楚了)
摘自:https://www.cnblogs.com/pursuitofacm/p/7420204.htmlgcc、make、makefile、cmake、cmakelists区别 文章来源:见下!作者:辉常哥链接:https://www.zhihu.com/question/36609459/answer/89743845来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.gcc是GNU Compiler Collection(就是GNU编译器..转载 2020-10-22 12:29:56 · 964 阅读 · 0 评论 -
extern “C”的作用详解 (主要是在ACfly的代码里看到太多extern “C“)
摘自:https://www.cnblogs.com/carsonzhu/p/5272271.htmlextern “C”的作用详解 extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只...转载 2020-10-05 00:34:55 · 313 阅读 · 0 评论 -
结构体在STM32串口接收中的妙用
摘自:https://www.stmcu.org.cn/module/forum/thread-615994-1-17.html结构体C程序中在STM32单片机串口接收的妙用之一结构体是一种数据的归类方式,相比数组或变量更具有整体全面性,例如一个数组只可以放一些按照元素顺序存放的单元变量,即tab={x,x,x,x,x......},i有多大,数组内元素就有多少.那么我们这时候如果我们用这个数组来接收串口接收信息,信息的格式是: 数据头>数据长度>数据区>数据校验>...转载 2020-10-04 12:32:49 · 2810 阅读 · 1 评论 -
printf重定向
printf重定向。原创 2020-09-21 00:50:00 · 190 阅读 · 0 评论 -
__FILE__、__LINE__等几种C标准用法
摘自:https://mp.weixin.qq.com/s/o29SyZRoDhTia2wr2XXLKA__FILE__、__LINE__等几种C标准用法原创 strongerHuang strongerHuang 昨天关注、星标公众号,不错过精彩内容作者:strongerHuang微信公众号:strongerHuangC语言有很多特殊的用法,如果这些特殊用法使用得当,会是你的代码变得更加有健壮,更加容易维护。比如我们在使用STM32库的断言(assert),你会..转载 2020-09-23 17:56:08 · 336 阅读 · 0 评论 -
keil里面C文件下面为什么那么多头文件
这个问题我一直很好奇但是没有去深究。今天搜了下http://www.openedv.com/posts/list/0/44816.htm原创 2020-09-23 08:38:06 · 2390 阅读 · 2 评论 -
我们分析任何代码我们首先分析它的.h 很明显.h里面会封装它的数据类型,会封装它的一些操作接口,先分析.h 有经验的人不回去看.c的 绝对是看.h的
我们分析任何代码我们首先分析它的.h 很明显.h里面会封装它的数据类型,会封装它的一些操作接口,先分析.h 有经验的人不回去看.c的 绝对是看.h的这个说得我恍然大悟,我再去看freertos的task.c不如先去看task.h 不然task.c几千行看着晕啊。以后我们看这种庞大的代码的时候就去先看.h吧像freertos 还有一些协议栈等等的,代码文件比较多的。...原创 2020-09-23 07:08:24 · 146 阅读 · 0 评论 -
任务栈里到底存放的是一些什么东西?(任务切换,中断,函数调用)
任务栈里到底存放的是一些什么东西?这个我觉得有必要弄清楚。C语言的栈也是,中断发生时,栈保存的是当前函数的什么,指令地址和寄存器值么?。...原创 2020-09-22 23:16:53 · 864 阅读 · 1 评论 -
我发觉不管是单片机运行C程序前还是freertos创建任务前,都需要先创建堆栈。
我发觉不管是单片机运行C程序前还是freertos创建任务前,都需要先创建堆栈。STM32的启动代码里面就是有弄堆栈创建初始化的嘛。原创 2020-09-21 12:24:15 · 144 阅读 · 0 评论 -
用结构体封装寄存器,非常妙!!!
拍自野火的《STM32库开发实战指南》原创 2020-09-14 09:14:43 · 1009 阅读 · 0 评论 -
结构体的数据对齐
数据对齐是指在处理结构体中的成员时,成员在内存中的起始地址编码必须是成员类型所占字节数的整数倍。结构体成员采用数据对齐主要是为了加快读取数据的速度,减少指令周期,使程序运行得更快,这方面的知识可以参考计算机组成原理的相关书籍。结构体sizeof的计算结果必须是结构体中占用空间最多的成员所占空间的整数倍。如果结构体中的成员包括数组或者其他结构体,在数据对其时,要以结构体中最深层的基本数据类型为准。...原创 2020-09-14 09:45:27 · 1050 阅读 · 0 评论 -
volatile需要总结一下
https://www.bilibili.com/video/BV1Jx411X7NS?p=9原创 2020-08-12 17:52:26 · 148 阅读 · 0 评论 -
#dedine带参数的宏定义
这种形式的宏定义就比较有意思了这好像也叫带参数的宏定义。https://www.bilibili.com/video/BV1Jx411X7NS?p=5细看还是可以理解的,这样也确实方便了使用,确实这样做是有道理的,宏定义这么弄确实很方便后面对链表的操作。特别是方便一些指针的操作的使用!!!!...原创 2020-08-11 17:08:12 · 370 阅读 · 0 评论