自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习软件的随笔

最近想做一个项目,去找了老师,上网查了些资料,也找了些代码。本来觉得做东西只要有一些基础就好了,能找到类似源码,再修改一下,似乎这个问题就顺理成章地完成了,然而事情并不是我想的那么简单。面对一个课题,一定有一些是你懂的,还有一些是你不懂的。我看过我舍友做单片机课设时候的样子,上课一知半解地学,课设时候几乎啥也不会,课题是老师给的,也摸不着头脑,可他就是依靠自己一行一行读代码,一行一行地理解,不...

2018-11-05 19:19:08 162

原创 对全局变量的一点发现

有三个文件ex1.c ex1.h main.c想来测试一下多文件共同编译时,他们的"共同变量"究竟是有着怎样的关系ex1.c: #include "ex1.h"int a=0;void numadd(){        a++;        b++;} ex1.h#ifndef EX1_HH#define EX1_HH #include &...

2018-11-05 17:36:11 186

原创 如何简洁高效地布局51单片机程序(多文件)

在我们建成一个51工程文件后,会向其中增加一些.c文件,同时还会有一些.h文件。如何避免文件多造成的混乱呢,同时还能有效地将一系列的.c文件成功地添加到工程文件,并且.h文件也能自动被识别出来呢。下面讲讲具体实现1.先在一个空的文件夹下新建如下文件夹2.然后打开app文件夹在该文件夹下新建一个src文件夹。3.接着在bsp文件夹下创建两个新的文件夹,名称分别为inc和src...

2018-11-05 15:54:00 6758 1

转载 select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。     select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *...

2018-08-15 10:26:51 192

转载 C语言操作mysql的常用函数

C语言操作mysql数据 常用函数 所需头文件: #include <mysql/mysql.h>功能:   获得或初始化一个MYSQL结构函数原型: MYSQL *mysql_init(MYSQL *mysql)函数返回值: 一个被始化的MYSQL*句柄备注:   在内存不足的情况下,返回NULL 所需头文件: #include <mysql/m...

2018-08-14 17:00:26 1681

原创 进程间通信

一、目的:一个大型应用系统往往需要多个助手联合作用,这些助手就是进程,他们之间通信的重要性显而易见。主要目的有四种:数据传输,资源共享,通知事件,进程控制1.数据传输:就是一般的理解,一个进程把自己的数据发给另外一个进程。2.资源共享:多个进程想要操作共享数据,一个进程对共享数据的修改,其他进程应该能够立刻看到3.通知事件:一个进程要向另一个或者一组进程发送消息,告诉他们发生了什么...

2018-08-06 23:44:44 132

原创 函数的重载与带默认参数,占位参数的函数

以下三个函数属于重载函数。重载函数要求:(满足一个就算)1.参数类型不同2.参数位置不同3.参数个数不同注意:不以返回值类型作为判断重载函数的标准 如果这个时候调用add(1,2);编译时是不会通过的。编译器对函数的编译有三个过程1.找到所有匹配的函数名2.进行参数的精确匹配,通过默认参数匹配或者默认类型转换3.如果没有符合要求的参数,无论是参数...

2018-08-04 14:52:39 508

原创 C++中的类型转换

为了解决C中转换简单粗暴的,并且不易发现的问题,C++中重新定义了四种转换格式一、static_cast<>()用于对基本数据类型,以及对象指针的转换二、dynamic_cast<>()用于类层次间的转换(要有多态)三、reinterpret_cast<>()用于基本类型指针的转换和整数与指针间的转换四、const_cas...

2018-08-03 17:54:48 115

原创 线程创建,分离,退出,回收

包含头文件<pthread.h>创建pthread_t tid;pthread_create(&tid,NULL,(void *)(*pf)(void * arg),void *arg2);如果创建成功返回0,失败返回-1 等候回收线程void *temp;pthread_join(tid,NULL);如果想获得返回的线程id,第二个参数要(vo...

2018-08-02 15:48:40 455

原创 C的一些知识点5

用户自定义的数据类型:枚举型enum day{Sun,Mon,Tue,Wed,Thu,Fri,Sat}; 这里需要强制类型转换一下,i=0对应的是Sun,1是Mon............6是Sat,有点像是数组的感觉,从0开始计数。  这个例子说明可以自己赋值,如果不赋值就从0开始如果第一个元素赋值第二个没有赋值,那么第二个元素就比第一个+1  另外还...

2018-08-02 09:18:03 125

转载 静态成员变量和静态成员函数

类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。静态类成员包括静态数据成员和静态函数成员两部分。一 静态数据成员:类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有...

2018-08-01 17:43:46 117

原创 C的一些知识点4

用户自定义的数据类型,对于一般的数据类型有整型, 字符型,浮点型。相同的数据类型往往有着相同的大小和编码方式数组是一种比较特殊的数据类型,由于一个数组变量是由多个变量组成的,因此称其为构造数据类型C中主要有三种自定义的数据类型,结构型,联合型和枚举型结构型:struct Student{              char name[20];              ...

2018-07-31 10:41:07 2582 1

原创 关于Makefile的简单运用

当在 l i n u x 下编写多文件的工程时,如果使用gcc x.c xx.c xxx.c -o xxxx将会很麻烦,特别是当程序中出现了某种错误的时候,可以通过makefile 来集中修改,集中编译。这个是1.c 文件这个是2.c文件这个是Makefile文件,里面Target是目标文件名也就是编译过后想要运行时的文件名Object是依赖文件,并且是.o文件第四...

2018-07-30 23:50:39 260

原创 C的一些知识点3

函数,预处理先讲函数:C中只能包含一个,有且仅有一个main()函数,还可以有很多其他函数(库函数,自定义函数)函数分为函数头和函数体,函数体是对这个函数具体功能的诠释函数头由三部分组成:返回值,函数名,参数列表参数又分为实参和形参,传递方式为值传递和地址传递在主函数中调用时赋的值称为实参,在写函数时参数列表中的参数为形参值传递:实参的值拷贝一份传入形参中,形参和实参都有自...

2018-07-29 16:54:54 173

原创 C的一些知识点2

一维数组,二维数组,字符数组对于数组,不能使用变量来表示数组长度比如 int k;int a[k];这样的定义就是错误的一维数组:其定义方式为int a[10];   或者int a[ ]={1,2,3};如果定义int a[5]={1,2};那么后面三个数字的值会自动初始化为0二维数组:定义方式为 int a[ 3 ][ 4]; 或者int a[ ][4 ]={1,2...

2018-07-29 15:51:55 175

原创 Matlab

创建一个矩阵:A=[1,2,3;4,5,6];全1矩阵:ones(r,c);全0矩阵:zeros(r,c);单位矩阵:eye(r,c);随机矩阵:rand(r,c);对矩阵四舍五入取整:round(A);得到矩阵行与列 [r,c]=size(A);创建一个向量:a=( 1:5 )或者等差数列(1:3:6)或者linspace(1,3,2)(表示1到3之间有两个数)求...

2018-07-29 14:42:31 235

原创 C的一些知识点1

计算机主要由五大设备组成:输入、输出设备,运算器,控制器,存储器(内存)。下面模拟一下其工作过程#include <stdio.h>int main(){       int  a,b;       scanf("%d %d",&a,&b);       a=a+b;       printf("%d",a);       retur...

2018-07-29 14:40:47 157

原创 Linux 下vim的操作

常见的复制,粘贴,上下左右,替换,分栏,插入。。。。vim有三种模式:底行命令模式,插入模式,一般模式一般模式:进入采用vim filename,退出采用:wq插入模式:进入采用i,a,o,退出采用esc(随即进入一般模式)底行命令模式:进入采用 : (一般模式下),如果在插入模式,要先进入一般模式,退出采用回车键。复制粘贴操作:先选定要复制区域(v自己选择一个字符一个字符移动...

2018-07-27 11:05:20 509

原创 Liunx下对文件的压缩操作

有两种压缩文件的方式,针对的是单一的文件一、压缩:gzip -v Name---------(不保留源文件)                 gzip -vc Name   >Name.gz ---------(保留源文件)      解压缩:gzip -d Name.gz-----(两种都可以解压)二、压缩:bzip2 -vz Name -------(不保留源文件) ...

2018-07-25 21:19:16 166

原创 N个人,依次报数,数到3的剔除,继续从1开始报数。。。。。。剩下的最后一个人编号是多少

可以用到队列的知识,进行循环计数:i(计数总数)%N(队列长度)。然后使用循环进行报数,限制条件是4(假设报到3回头)。接着要挑选出满足条件的,即报到3的人。可以用if语句。如何标记,可以用赋值为0的人代表报到3的人。循环时如何区分,每次循环都要判断这个人的值是否为0,为0则跳过(不进行报数赋值)。还有很重要的一点,如何找出最后一个人,可以用flag的方式,每次将报到3的人赋值...

2018-07-25 15:26:23 3071 1

原创 int a[ ]={0};

如题,这样初始化数组究竟可不可以。下面看一段代码:#include <stdio.h>int main(){ int a[]={0}; int i; for(i=0;i<10;i++) { a[i]=i; printf("a[%d]=%d\t",i,a[i]); } int b[]={0}; putchar('\n'); for(i=0;i...

2018-07-21 10:07:09 13158 3

原创 typedef int(FUNC1) (int in)

首先看一个例子:#include <stdio.h>int inc(int a){ return (++a);}int multi(int *a,int *b,int *c){ return (*c = *a * *b);}typedef int (FUNC1) (int );typedef int (FUNC2) (int *, i...

2018-07-20 14:29:59 1850

原创 计算机网络之物理层

物理层在OSI七层网络模型中处于第一层,主要作用是保证透明的比特流传输。透明的比特流传播就是信息在以0,1这样的二进制比特流传播中只关心传输是否准确而不关心传播的内容是什么。物理层有四大特性,分别是:机械特性,电气特性,功能特性,规程特性。分别介绍机械特性:指接口所有接线器的形状,尺寸,引脚数等电气特性:指接口电缆各条线出现的电压范围功能特性:指某条线出现某电平时的电压意义...

2018-07-19 19:05:04 956

原创 从故事化的角度解读OSI的七层网络模型

从前接触过网络方面的知识,对其基本模型有个大概的了解,大体有两种模型,一种是由ISO制定的OSI七层网络模型,还有一种就是DOD的TCP/IP四层网络模型。后者脱胎于实践且早于OSI模型,所以一直是比较常用的。不过我主要还是想来谈谈我自己对OSI七层网络模型的理解。首先,我们来看看OSI七层网络模型是哪七层。从第七层开始到第一层依次是:应用层(Application Layer),表示层(Pr...

2018-07-19 16:35:40 503

空空如也

空空如也

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

TA关注的人

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