自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 远程管理软件

Teamviewer是一款不错的远程管理软件。

2016-12-22 19:32:36 487

原创 Linux中防火墙

在linux操作系统上,按照一个nodejs实现的UDP/TCP server,node udpserver.js 启动UDPserver后,进程中可以看到确实服务起来了,但是另外一台机器(同一网段)不能连接成功。原因在于linux的防火墙没有关闭。关闭防火墙指令: service iptables stop启动防火墙指令: service iptables start

2016-12-22 19:29:42 421

原创 C语言实现有限状态机FSM

FSM(finite state machine),它是一种协议,是一个数学概念,用于有限数量的子程序(状态)的变化,每个子程序进行一些处理并选择下一种状态(通常取决于下一段输入);它可以用作程序的控制,对于那些基于输入的在几个不同的可选动作中进行循环的程序尤为合适。C语言中的状态机表达式通常使用函数指针数组的方式。void (*state[MAX_STATES] ) ( );ex

2016-12-22 15:27:21 3699

原创 使用define宏定义的小技巧

对于strcmp()函数,用于比较两个字符串,当两个字符串相等时,返回的值是0.例如代码if( !strcmp(s,"volatile") )return QULIFIER;这里有个较好的方法#define STRCMP( a, R, b)   (strcmp(a, b)  R 0)现在可以这么写了,if( STRCMP(s,==, “volatile”) )扩展开

2016-12-22 15:10:05 924

原创 说说typedef

typdedef 为一种类型引入新的名字,而不是为变量分配空间,某些方面类似于宏文本替换,但它并没有引入新类型,而是为现有类型取个新名字,这是他们之间存在一个关键性的区别。typedef是为数据类型创建别名,而不是创建新的数据类型。#define peach intunsigned peach i;// 以上使用是正确的。typedef int bananaunsigned b

2016-12-22 14:58:13 555

原创 C声明的优先级规则

C声明的优先级规则:A 声明从它的名字开始读取,然后按照优先级顺序依次读取;B 优先级从高到低依次是:B.1 声明中被括号括起来的那部分B.2 后缀操作符:括号()表示这是一个函数,而方括号[ ]表示这是一个数组;B.3 前缀操作符:星号*表示“指向···的指针”C 如果const和(或)volatile关键字的后面紧跟类型说明符(如int,long)那么它作用于类型说

2016-12-22 10:03:38 281

原创 C语言的特性

通过如下的一些例子,感知C语言的特性。1、swtich通常格式为:switch(表达式){case 常量1:零或多条语句;break;case 常量2:零或多条语句;break;default常量3:零或多条语句;break;}注意break的使用,跳出的范围是哪一个。如果没有break,就变成了fall through,这种情况出现不足3%。偶尔出现两条或是多

2016-12-21 23:17:59 1295

原创 语义检查lint程序

第一次听说lint是在开发STM32项目时,在keil编译器中PC lint作为插件安装的。编译器可以检查语法的问题,而lint可以检查语义的问题。在unix上的C语言中,语言设计者把编译器中所有的语义检查措施都分离出来,错误检查由一个程序单独完成,这个程序就是lint。例如char* fun(void){ char local_array[3];.....return

2016-12-21 23:05:03 1037 1

原创 ANSI C

1、编译器的限制:函数的形参数量上限是31个;函数调用时实参数量上限31个;一条源代码行里至少可以有509个字符;表达式至少可以支持32层嵌套;long int最大值不得小于32位。2、ANSI的标准结构,包括介绍、环境、c 语言、C运行库。foo(const char **p){}main( int argc,char**argv){foo(argv);

2016-12-20 23:29:36 309

原创 C语言的进一步发展

C一开始的时候并没有标准I/O,而是由库函数提供,而且库函数通常都是显式调用,后来Mike Lesk开始尝试编写可移植的I/O,经过不断的优化和裁剪,后来成为标准I/O函数库。于此同时C预处理器加入这个行列中。C预处理器主要实现3个功能:1、字符串替换;#define  2、头文件包含;#include ;3、通用代码模板的扩张。比如#define a(y) a_expande

2016-12-20 23:25:51 352

原创 了解C语言

任何新的发现都是源于旧方法无法很好的解决当前问题,而后创新尝试中产生。C的产生是由于一个项目的失败,专家们转而寻找其它方式解决问题时应运而生。    贝尔实验室和麻生理工学院创建了一个项目-Multics工程,目的是创立一个操作系统。他们试图在一个小硬件上创立一个庞大的操作系统,但是最终交付的不是满意。为此他们中的一些专家尝试用了新的方式,最终产生了unix的C。语言 :

2016-12-20 07:21:40 339

原创 windows和linux之间的文件传输和控制

常用 的SSH客户端软件: Putty, Xshell,Secruitywindow和linux之间的文件传输 wincsp,filezilla

2016-12-19 23:58:32 427

原创 STM32L1xx的库函数有个Bug(stm32l1xx_gpio.c)

在使用STM32L151的时候遇到 GPIO_PinAFConfig(xx,xx,xx)函数无效,有时候还有导致程序HardFault的问题。之前遇到就使用直接寄存器操作避免了这个问题,这次出现了Hardfault,我想这得找找原因了,不然没吃都得修改寄存器操作,麻烦的很。文件“stm32l1xx_gpio.c”中关于GPIO_PinAFConfig 函数式这么定义的。当使用的引脚号大于8

2016-12-07 18:35:13 2171 1

空空如也

空空如也

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

TA关注的人

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