C语言基础知识
文章平均质量分 51
xuuyann
国家一级退堂鼓表演艺术家。
知乎:OpenRobotSL
邮箱:neuxuyan@163.com
展开
-
创建动态大小的结构体
struct AA{ int x; int y; int z;};class BB{public: AA *P; void newStruct(int num) { P = new AA[num]; } void deleteStruct() { if(P != nullptr) { delete [] P; } }private原创 2020-10-09 16:36:02 · 81 阅读 · 0 评论 -
自写的C语言矩阵简易运算库
因为机器人相关的基本运算中很多都是矩阵运算,虽然C++有现成的Eigen库,ROS中的矩阵运算也是基于Eigen库的,但是我目前想自己做一做这个底层驱动,涉及正逆运动学、关节速度规划、空间姿态插补算法等,而我现有的单片机不支持这个Eigen库,所以就写了一个简单的基于C语言的矩阵运算库,满足基本的矩阵运算需求。不过缺陷还是很明显的,只适用于学习交流。我主要写了如下几个功能的子函数:创建矩阵;...原创 2019-07-22 19:52:30 · 6422 阅读 · 6 评论 -
五自由度机械臂正逆运动学算法(C语言+Matlab)
/* * MyMatrix.h * * Created on: Jul 13, 2019 * Author: xuuyann */#ifndef HEADER_MYMATRIX_H_#define HEADER_MYMATRIX_H_typedef struct MNode *PtrToMNode;struct MNode{ int row; int col...原创 2019-07-13 21:13:24 · 28282 阅读 · 54 评论 -
连续两次递归调用的粗浅分析
本文将从两个简单代码出发,对具有连续两次递归调用的程序进行粗浅分析,试图从堆栈的角度对其进行解释。首先,什么是递归函数?在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。实际上,递归,顾名思义,其包含了两个意思:递 和 归,这正是递归思想的精华所在。正如上面所描述的场景,递归就是有去(递去)有回(归来),如下图所示。“有去”是指:递归问题必须可以分...原创 2018-10-10 19:50:17 · 4163 阅读 · 7 评论 -
一个小错误: deprecated conversion from string constant to char*错误的修改
当我们将一个character pointer variable 初始化成一个string literal的时候, 就会出现此类错误。在最新的C标准或者C++标准中, 使用如下语句, 无论使用gcc 或者g++命令, 都会报出上面的错误, 不能通过编译:char* x = "hello";修改方案如下。sol1: char* 改为co...转载 2018-09-20 11:19:28 · 447 阅读 · 0 评论 -
GPS字符段处理(字符串编程练习)
题目:NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA-0183协议是GP...原创 2018-09-20 10:41:59 · 1074 阅读 · 0 评论 -
把一个位段换算成二进制
位段 把一个int的若干位组合成一个结构 struct { unsigned int leading :3; unsigned int FLAG1 : 1; unsigned int FLAG2 : 1; int trailing :11;}; // name : n -->name这个成员占n个比特把一个位段换算成二进制#includ...原创 2018-09-25 11:05:14 · 427 阅读 · 0 评论 -
大程序结构:声明
变量的声明int i; 是变量的定义 extern int i; 是变量的声明。声明时不能给变量初始化,因为初始化是定义时做的事情 函数的定义是定义,函数原型是声明声明和定义声明是不产生代码的东西 函数原型 变量声明 结构声明 宏声明 枚举声明 类型声明 inline函数 定义是产生代码的东西头文件只有声明可以被放在头文件中 这个是规则不是法律...原创 2018-09-24 10:36:51 · 209 阅读 · 0 评论 -
大程序结构:头文件
头文件 把函数原型放到一个头文件(以.h结尾)中,在需要调用这个函数的源代码文件(.c文件)中#include这个头文件,就能让编译器在编译的时候知道函数原型。#include#include是一个编译预处理指令,和宏一样,在编译之前就处理了 它把那个文件的全部文本内容原封不动地插入到它所在的地方 所以也不是一定要在.c文件的最前面#include “”还是<>#...原创 2018-09-24 10:02:45 · 285 阅读 · 0 评论 -
基于C语言sprintf函数的深入理解
这几天总遇到sprintf,下面自己来小小地总结下~srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~头文件:stdio.h函数功能:格式化字符串,将格式化的数据写入字符串中。函数原型:int sprint...转载 2018-09-19 09:53:50 · 226 阅读 · 0 评论 -
大程序结构:多个源代码文件
多个.c文件main()里的代码太长了适合分成几个函数一个源代码文件太长了适合分成几个文件两个独立的源代码文件不能编译形成可执行的程序项目在DEV C++中新建一个项目,然后把几个源代码文件加入进去对于项目,DEV C++的编译会把一个项目所有的源代码文件都编译后,链接起来有的IDE有分开...转载 2018-09-23 12:25:08 · 815 阅读 · 0 评论