自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 关于台达B2与S7-1200的使用——误差脉冲的问题

台达B2使用过程出现的问题

2023-09-23 16:45:03 178

原创 关于正点原子IMX6ULL开发板移植nginx出现用户问题 getgrnam(“xxx“) failed

关于正点原子IMX6ULL开发板移植nginx出现用户问题 getgrnam(“xxx“) failed

2023-05-27 18:06:25 160

原创 基于野火F407骄阳开发板的苹果采摘机器人机械臂的采摘轨迹与夹持器的采摘动作的设计(1)

基于F407骄阳开发板控制A2伺服驱动器,通过主从定时器实现对输出PWM波数量的记录,实现机械臂的软件限位。

2023-05-03 19:36:22 2149 1

原创 Linux——网络编程(tcp 和 udp )

TCP:并发服务器:关于再服务器代码和客户端代码中对服务器信息的描述如地址,端口等必须一致。服务器部分:客户端部分:UDP:循环服务器:关于再服务器代码和客户端代码中对服务器信息的描述如地址,端口等必须一致。服务器部分:客户端部分:...

2019-08-22 20:47:44 212

原创 linux——线程

线程:线程就是在一个进程中运行的执行流,它是比进程运行更小的运行单位。一个进程可以进行多个线程。进程的特点是:互不干扰,涉及通信。线程的特点是:同一进程内的线程相互影响,且不涉及通信。进程有独立的地址空间,线程没有,同一进程内的线程共享进程的地址空间。上面我在一个进程内开了三个线程,第一个线程让它打印三次hellowrold!(但是它只打印一次),第二个线程打印l am mohen,...

2019-08-20 17:07:46 142

原创 Linux——进程间通信

1、管道 和 有名管道无名管道:一般用于父子进程的通信。有名管道:用于任意进程间的通信。当管道为空或者为满时,再试图读出或者写入时,管道会堵塞。...

2019-08-20 10:19:36 97

原创 Linux——进程控制编程

Linux进程控制:Linux是个多进程系统,进程是相互独立互不影响的。当然也可以通过一些方式,完成进程间的交流,数据传递。fork函数:fork是用来建立进程的函数。它的返回值如果是-1,则表示进程建立失败。如果是0,则表示建立的是子进程。如果是其他数,表示建立的是父进程,且返回值表示子进程的ID进程号(pid)。可以使用man手册查询fork的用法。注:kill -9 进程id ...

2019-08-18 11:37:31 196

原创 C库函数的文件操作

C库文件访问: 一般数据的读写都要经过磁盘和内存的交流,像这种磁盘和内存的交流是跨域的,所以会比较耗时间。但是c库函数的文件操作,是数据先存放到缓存区,然后再与磁盘进行交流。大大加快了进程运行的效率。由于是使用c库本身的函数,所以无论什么系统,只要包含c库都可以使用。man 3 加上函数名可以查询使用方法。用c库文件访问函数实现cp指令:...

2019-08-14 18:47:03 132

原创 Linux的系统调用

系统调用:系统调用其实就是指用户通过特殊的方式访问内核提供的服务。为了避免操作系统出现问题,所以用户一般情况下是不能直接访问内核。文件描述符:在linux中打开一个文件,内核就会返回一个非负(从0开始)的文件描述符。每一个进程被启动,都会自动打开标准输入,标准输出,标准错误处理这三个文件。这时候你在打开一个文件,这时候内核返回的文件描述符就是3。第一次执行时,没有text.c文件,它创...

2019-08-14 15:13:50 146

原创 数据结构——排序(简单选择排序,堆排序,基数排序,归并排序)

简单选择排序:设第一个元素为最小或最大值,拿第一之后的数与之比较,记录下下标和最小值。和后面的数比较完成之后,再把数据进行互换。然后再次循环,设第二个数为最小值,和之后的数比较。归并排序:...

2019-08-14 13:53:39 276

原创 数据结构——排序篇(直接插入排序,希尔排序,快速排序)

直接插入排序:就是依靠已存在有序的数据,将无序的数据,依次插入到有序的序列中,然后形成有序的数据。就以4,6,3,2,8为例子,首先我们以4为一个有序的序列,取4以后的元素,与这个有序的序列进行比较。然后Insertsort函数中第一层for循环,i从1开始也是这个原因,避开第一个元素,拿后面的元素进行比较。因为插入需要进行移位操作,所以我们设置变量tmp记录下当前元素,然后从后往前,依次...

2019-08-12 15:59:51 1019

原创 数据结构——二叉树

二叉树:二叉树是n个结点的有限集合,该集合或者为空集,或者由一个根结点和两个互不相交的、分别称为根结点的左子树和右子树的二叉树组成。二叉树存在一些特点:1)每个结点最多有两个子树,不存在度大于二的结点。2)左子树和右子树是存在顺序关系的,不可随意颠倒。3)即使某一结点只有一个子树,也要区分左右。满二叉树:叶子结点只会出现在最底层,非叶子结点的度一定为2,在同样的深度二叉树中,满二叉...

2019-08-10 18:58:43 266

原创 数据结构——链栈 链队

链栈:c语言的实现头文件:主要是定义两个结构体主函数:函数文件链队:头文件主函数函数文件

2019-08-10 16:18:33 124

原创 数据结构——顺序队列 以及 使用顺序队列实现杨氏三角

顺序队列:先进先出的原则定义front(队头)和rear(队尾),在队列中起到数组下标的作用。计算队列长度:(rear - front + size)% size判断队列是否队满 :(rear + 1) %size == front头文件主函数函数文件使用顺序队列实现杨氏三角...

2019-08-10 10:39:03 208

原创 数据结构——顺序栈

栈结构:先进后出(后进先出)下面是顺序栈的一些基本操作代码:头文件主函数文件函数文件内容运行结果:利用上面的函数文件中的函数条件,利用顺序栈实现排序。主要是使用两个栈进行实现。...

2019-08-09 21:12:36 244

原创 数据结构——链表

链表:头指针:指向头结点。头结点:存在指向下一个结点的指针。主要在头文件中定义了一个结构体,结构体中包含数据和指针(指向下个结构体,也就是下个结点)。上面是进行初始化操作。定义一个头指针。随机插入几个数据。Getelem和Location两个函数的作用分别是根据位置找元素和根据元素找位置。Priorelem和nextelem是根据元素来返回前一个和后一个元素是什么。Re...

2019-08-08 21:27:37 177

原创 数据结构——顺序表

顺序表:这个是头文件,和#include<stdio.h>差不多,主要在头文件中定义了一个结构体,包括一个int类型指针和int类型的length长度单位,用来记录顺序表的长度。18到27行是函数文件中的函数名,包括他的返回值类型和形参,注意,函数后面要加分号。在main函数文件中,申明一个list的结构体。Initlist函数的主要作用就是初始化,申请空间,然后将结构体中...

2019-08-04 21:25:32 2350

原创 C语言——关键字(补充)

static: 修饰变量,变量的空间会在静态区内分配空间。1)当修饰全局变量时,该变量不会在其他文件中被extern关键字调用。2)当修饰函数时,也起到相同的作用。换句话来说,static改变了变量函数的作用域,只能在本文件中起到作用。3)当修饰局部变量时,改变了变量的生命周期,不会在一次调用函数之后就清空。任会保存变量的值。extern:修饰变量,表示在其他文件中该变量已经被定义过了...

2019-08-02 19:22:50 133

原创 C语言——函数指针 数组指针 指针数组 指针的指针

函数指针:在c语言中,一般函数都是占用一段连续的内存区,而函数名就是这段连续内存区的首地址,而且指针也代表着地址。所以,我们可以吧函数名(函数首)赋值给指针变量,用指针来调用这个函数。格式:int (*p)() :表示指针p指向一个无形参,且返回值是int型的函数。p(); :调用时的格式。注:int (*p)() 中( *p ) 的括号必须要加,不然像int *...

2019-07-31 19:25:12 1132

原创 C语言——结构和联合(2)大小端

unionunion的所有成员共享内存。union字节长度为最长成员的长度。字节序分大端字节和小端字节,小端字节,高字节对高地址,低字节对低地址。大端字节与之相反。大端字节和小端字节的转化:...

2019-07-28 10:04:02 101

原创 C语言——结构和联合(1)

struct:结构体学会引用结构体,在一些程序编写,比如储存一些个人信息,里面涉及个个变量的时候,就变得十分简单,可以在结构体中申明。下面是在程序中结构体的一些基本用法:结构体的长度的判断方法:1》结构体的长度一定是最长成员类型长度的整数倍(成员指基本数据类型,不包括double和数组)。2》每个成员的偏移量一定是该成员长度的整数倍。下面画图举列根据这个图给出的长度应该是int 4...

2019-07-27 21:15:28 173

原创 C语言——指针(1)

指针:指针是变量的一种,不过指针中存放的是地址。*的作用:1):用于定义指针变量 int *p = &a;上式表示定义一个指针变量p并且把a的地址给指针变量p。2):使用表示取值,读取p指向的地址的内容。注:变量的地址赋予给,和变量相同类型的指针。上面的显示的 * 型的字节长度,以及指针的定义。指针的函数调用:当使用无返回值的函数调用时,可以用使用指针的办法,直接操...

2019-07-25 20:32:16 237

原创 c语言小题:快速找出一个数组中的最大数、第二大数。

2019-07-25 17:09:29 4183 1

原创 C语言——对于变量的关键字:auto、extern、static、

1、auto:自动变量显式表达法:auto int x, y;隐式表达法:int x,y;auto一般可以省略。执行结果2、register寄存器变量。一般时针对使用比较频繁的变量。加快了运行效率。3、extern申明外部变量。它的目的就是告诉编译器,extern所引入的变量或者函数,在外部定义过了,可以直接拿来使用。列如:上面就是extern的一些用法。4、static...

2019-07-25 17:07:43 1285

原创 C语言——字符串逆位 指针解法。

2019-07-24 20:59:18 195

原创 C语言 ——字符数组

字符数组:当把字符串保存到数组中时,需要注意一些点。首先对数组的定义应用char定义,其次,数组的宽度一定要比字符串的长度长,因为字符串的末尾还带有‘\0’。当使用%s进行输入和输出。常用的存于string库文件中的一些字符串函数:1、strcpy:复制字符串。strncpy(str,src,3); :strncpy的函数的用法就是把src中前三个字符串复制到str数组中。2、...

2019-07-23 19:42:31 176

原创 C语言——数组

数组:数组a[10]: a表示的是数组的名字,10表示的是数组的长度。但是数组其实是a[0]到a[9],不存在a[10]号数组。数组长度一定是确定的,不能是变量。a[0]对应的是低地址,但是a[9]对应的是高地址。数组不赋值初始化的局部变量都是垃圾值,乱码。未初始化的全局变量是0;a[]={0,1,2,3,4};这种格式是可以的。二维数组:a[ 5 ][ 5 ] 和一维数组相似...

2019-07-23 18:41:48 2116

原创 c语言 if 、switch、for 、continue 、break、

if :if语句在c语言当中用于判断,条件是否成立。成立后在执行if{}中的语句。列如这是个简单的对if判断语句的运用。这是函数的运行的结果。关于switch和if else if用法我举个列子。这就是if elseif的用法。相同情况下switch的用法如下图所示:当情况越多时,并且判断条件不是很复杂时,用switch case相比if else简单。**但用上switch时...

2019-07-23 16:40:01 957

原创 字符串数组 小题:在字符数组中指定开始位置插入字符串。

2019-07-22 21:08:59 524

原创 c语言基础(1)

c语言:c语言虽然没有一些高级语言易学,门槛高。但是它仍具有一些其他的语言所无法具有的。它能直接操作硬件,不像其他语言需要转c语言,才能操作硬件,且c语言运行效率高。而且,c语言有着一致性,高度统一。c语言的基本数据类型:1、空类型(void):表示没有数据(没有结果、没有参数),也可以表示某种任意类型的数据。2、字符型(char)(4个字节)。3、数值型:分为整型和实型。实型:分为单精...

2019-07-21 20:55:07 114

原创 c语言小题:快速找出一个数组中的最大数、第二大数。

在这里插入图片描述

2019-07-20 21:23:29 3804

原创 Linux —— shell编程

shell的基础使用:开头 #!/bin/bash在shell中可以使用变量,用$引用变量。例如:STR=“this is shell” 注:=两边不能存在空格echo $STR :echo表示输出。最后结果:this is shell 在linux系统中,执行.sh文件之前,要修改.sh文件权限。一些和 $组合符号的含义:$0:表示当前执行的程序名。$+数字:...

2019-07-19 16:52:01 87

原创 Linux——gdb调试器 find、grep

gdb:用于对程序的调试。用法:建立.c文件后,编译时加上-g,列如(gcc -g 1.c -o 1)。编译完成后,在linux终端敲出gdb +编译完成后的文件名。然后就进入gdb的调试。gdb的一些指令:1、r(run):运行程序。2、b(break):设置断点。b +行号或者b+行首的关键字,进行设置断点,使用run命令时,会在此停留。3、c(continue):继续进行。当遇到断...

2019-07-19 13:46:07 1889

原创 Linux——make和Makefile(Make管理器)

Make工程管理器是完全根据Makefile里的编译规则命令执行工作。Makefile文件由下面三种基本内容组成。1、需要生成的目标文件(Target file)。2、生成目标文件所需要的依赖文件(Object file)。3、生成目标文件的编译规则的命令行(command)。Target file:Object file(Tab)command注:在command前一定要加个Tab键...

2019-07-19 10:33:23 96

原创 Linux指令 gcc的扩展——静动态库的制作。

静态库:编译时,链接所有需要的库。优点:对运行环境没有要求。缺点:文件大。制作步骤:以编写main文件为列1、编写main.c,print.c,show.c。2、将show.c和print.c文件转为二进制文件。gcc -c show.c print.c3、制作静态库。ar -crv libxxx.a show.o print.o注:libxxx.a是格式。xxx是库名,.a表示...

2019-07-19 09:27:40 127

原创 关于Linux的指令(二)tar vim chmod(文件权限)

tar :用于文件压缩解压,一般以.tar.gz结尾。tar -zcf xxx.tar.gz +一个或多个文件名(文件之间以空格隔开)用于文件的压缩,压缩包名为xxx。tar -xzf xxx.tar.gz用于解压,把名为xxx的压缩包解压。vim:是linux系统常用的编辑器。vim存在三种模式:命令模式,底行模式,插入模式。命令模式:在命令模式可以用shift+zz退出vim编辑器...

2019-07-18 19:54:55 416

原创 关于linux的常识

Linux的结构目录:1、 /:根目录,只存放目录,列如/sbin,/bin,/usr等。2、bin(binary):二进制,存放可执行文件,常用的基本命令(列如ls)。3、dev(device):存放设备文件(列如u盘)。4、lib:存放库文件(列如printf等函数)。5、root:root用户的家目录。6、sys proc:保存内核信息。7、etc:保存系统配置文件。8、v...

2019-07-17 10:10:34 162

原创 Linux的指令以及用法(1)GCC

(1)gcc:gcc是linux最流行的编译系统。可以编译c,c++等多种高级语言。用法:1、gcc +文件名 + -o +生成文件名。gcc hello.c -o hello将hello.c的文件编译成hello文件。2、gcc + -E + 文件名 + -o +生成文件名。(注:-E中E为大写)gcc -E hello.c -o hello.i预处理,将hello.c中所有带有#...

2019-07-17 10:10:01 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除