- 博客(114)
- 资源 (14)
- 收藏
- 关注
原创 网络互联设备
网络互联设备 互联设备 工作层次 主要功能 中继器 物理层 对接受信号继续再生和发送,只起到扩展传输距离的作用,对高层协议是透明的,但使用个数有限(例如,在以太网中只能使用4个) 网桥 数据链路层 根据帧物理地址进行网络之间的信息转发,可缓解网络通信繁忙度,提高效率。只能够连接相同MAC层的网络。 路由器 网络层 根据逻辑地址进行网络之间的协议转发,可完成异构网络之间的互联互通,只能理解使用相同网络层协议的子网。 网关 高层(4-...
2020-06-07 21:43:41 1374 2
原创 提高软件开发效率的方法
一个开发任务下达以后,我们希望尽快的实现的,对软件开发工程师的要求是:多快好省多--单位时间产量高快--同样的产量所需的时间少好--质量高省--省钱,省时,省资源这四个目标中最主要的又是“快”,也就是效率高,当然这四个指标之间也是有相互联系的。提高效率的第一个办法就是加人和加班,这也是目前大多数企业采用的方法,特别的简单粗暴。首先看看加人,加人对项目开发效率的影响在起初人少......
2019-01-12 21:28:23 17525
原创 关于系统开发的思考
有几个基本观点我认为很重要:1做事要有套路2人是不完美的3意外总是存在的4错误总是难免的5文档很重要1做事要有套路做事是有套路的,也应该有套路。套路就是模式,就是要干什么,按照什么样的顺序干,是一种结构化的行为准则。做事情不一定能够确保成功,世上就没有绝对的事情。套路能够提高成功的概率。套路保证“你的成功可以被复制!”,套路也使得你的经验,方法能够传承,能够被学习。...
2018-10-21 12:58:57 713 1
原创 什么叫中断?
场景一假如你正在写作业,你的舍友来找你去打球(中断),你停下手中的笔,折好书页(保存中断现场),和舍友一起打球(中断服务程序),你打得爽了,回来梳洗一番,拿起笔,打开书本折页的地方(中断恢复),继续写作业。场景二假如你正在写作业,你舍友喊你去打球,你正在打球,你女朋友喊你去逛街,你陪女朋友逛街,然后回来作业----中断嵌套场景三假如你正在写作业,你女朋友喊你去逛街,你陪女朋友逛街,接到你舍友电话喊你去打球,你拒绝,继续陪陪女朋友逛街----中断优先级场景四鉴于上次有太多人打扰结果
2021-11-16 21:41:33 2716
原创 LK32T102学习7-LCD12864
RS/CS--片选,高电平有效RW/SID--串行数据输入端E/SCLK-- 串行同步信号,上升沿时读取SID信号PSB--数据传输方式选择,高电平为并行方式,低电平时为串行方式RST--复位端,低电平有效#ifndef __LCD12864_H#define __LCD12864_H//重要的也就是这4个函数了,其他的就不要管了void lcd_init(void);void lcd_clear(void);void lcd_wstr(uint8_t y_add, ui..
2021-11-14 01:01:44 2571 13
原创 LPC2124应用实例-GPIO
#include<lpc21xx.h>#define setSCK() SCK=1#define clrCLK() SCK=0#define setDS(x) DS=x#define setRCK() RCK=1#define clrRCK() RCK=0 void HC595_sendOneByte(u8 byteData){ u8 i=0; clrRCK();//与RCK=1对应,这是锁存数据 for(i=0;i<8;i++){//首.
2021-10-30 18:55:27 1766
原创 多种方式实现数码管的动态显示
--74HC138实现动态显示,减少口线的使用/*实例:采用74HC138控制,输出数码guan*/#include"reg51.h"void delay(unsigned int t){ while(t--);}unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xFF};unsigned char dis.
2021-10-19 13:20:20 3481
原创 C语言实现设计模式之行为模式:模板方法模式
用于解决某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性。在模板方法模式中,将实现功能的每一个步骤所对应的方法称为基本方法,而调用这些基本方法同时定义基本方法的执行次序的方法称为模板方法。一般方法:void handler1(void *data){ /**step1*/ ..... /**step2*/ f1(data); /**step3*/ .....}......void handlerN(void *
2021-08-24 21:48:58 313
原创 make:***virtual memory exhausted:stop
用树莓派做个小项目,结果出现上述消息,感到很奇怪!按照网上的资料不管是按linux的一般方法,还是树莓派的dphys-swap都不行,改大了swap空间也不可以。测试中还出现了“Device or resource busy”等问题。没办法将资料考出来,重装系统,将资料拷进去,在make还是上述的现象,一定是我的资料中有什么问题了将文件夹中的*.d文件打开发现是一堆乱码,这就疯掉了,不应该呀。查看Makefile发现一句话不小心被改导致自动生成的依赖文件错误!!手工删除*.d文件等,改mak
2021-08-23 11:40:31 324
原创 C语言实现设计模式之行为模式:访问者模式
行为模式主要用于解决if--else过多的问题访问者模式一般用于输出仅与本次输入输入有关,与以前的输入无关。输入的对象是多变的。但是处理的方法可以自由指定,但具体过程根据输入自动调整举例:一个公司有各种类型的员工,各个部门统计员工信息也是不一样的一般方法/**********************Request.h*************************/#ifndef REQUEST_H#define REQUEST_Htypedef struct Elemen
2021-08-14 23:06:53 470
原创 C语言实现设计模式之行为模式:策略模式
行为模式主要用于解决if--else过多的问题命令模式一般用于输出仅与本次输入输入有关,与以前的输入无关。一种输入根据处理方法的可以有多种输出。处理的方法可以自由调整。举例:针对不同人的打折销售#ifndef REQUEST_H#define REQUEST_Htypedef struct{...}Request;typedef enum{HANDLE1=0,...,HANDLEN}HandlerType;void handleRequest(Request *r, Han
2021-08-14 21:01:40 592
原创 C语言实现设计模式之行为模式:命令模式
/*********************************************/void Invoker(){//调用者 ... handler(r); ...}行为模式主要用于解决if--else过多的问题命令模式一般用于输出仅与本次输入输入有关,与以前的输入无关。但是处理的方法可能会经常性调整。一般结构#ifndef REQUEST_H#define REQUEST_Htypedef struct{...}Request;voi.
2021-08-14 19:20:26 382
原创 C语言实现设计模式之行为模式:责任链模式
1.一般结构#ifndef REQUEST_H#define REQUEST_Htypedef struct{...}Request;void handleRequest(Request *r);#endif#include"request.h"void handleRequst(Request *r){ if(condition1){ ... }else if(condition2){ } ... else if(conditio.
2021-08-14 18:15:57 326
原创 设计模式之行为模式:策略模式
一种接口,一种数据有多种处理方法/*v1.0*/class A{ type1 sth; ... void algorithm(){ if(conditon1){ ... } ... else if(conditonN){ ... } } }class B{ class A a; ... void execute(){ a.alogrithm(); .
2021-08-11 20:42:26 107
原创 设计模式的思考(二)
/**//*********************************创建型模式*********************************************/如何创建或使用类(二者只居其一)工厂模式、抽象工厂模式和建造者模式都涉及到设计用于创建目标对象的类;单例模式、原型模式涉及到目标对象的改造。@@如何创建对象?-----如何定义变量?有的时候要涉及类的重构。---------------------------------------单例模式:只需要创建一
2021-08-09 16:38:12 138
原创 设计模式之结构模式:组合模式
/*v1.0*/class Node{... list<node> nl;; list<leaf> ll; operation();....}class Leaf{... operation();....}/*v1.0*/class Node{... list<node> nl;; list<leaf> ll; operation();....}class Leaf{... o.
2021-08-09 16:27:32 82
原创 设计模式之行为模式:访问者模式
/*v1.0*/class A{ ... handle( handler){ if(handler="1"){ ... } ... else if(handler=="N"){ ... } } ...}/*v2.0*/class Handler;class A{ ... handle( handler h){ h.action(this); } .
2021-08-08 22:36:53 147
原创 设计模式之行为模式:命令模式
/*v1.0*/class A{... execute();...}/************************/class B{ class A command; execute(){ ... command.execute(); ... } }/*v2.0*/class A{... execute();...}class A1:public A{... execute();...}...class .
2021-08-07 12:10:38 94
原创 设计模式之行为模式:责任链模式
/*v1.0*/class Handler{... handleRequest(request r){ if(condition1){ handler1(r); } ... else if(conditonN){ handlern(r); } } ... handler1(request r){ ... } ... handlerN(request.
2021-08-06 19:00:15 80
原创 设计模式之结构模式:外观模式
class A{... action1(){...} action2(){...} ...}class B{... action{ ... class A a; a.action1(); a.action2(); ... }...}/*v1.0*/class A{... action1(){...} action2(){...} ...}class A1:public A{... acti..
2021-08-06 10:51:56 95
原创 设计模式之结构模式:组合模式
/*v1.0*/class Node{... list<node> nl;; list<leaf> ll; operation();....}class Leaf{... operation();....}/*v2.0*/class Compoment{ ... operateion(){}; add(Compoment c){...} remove(Compoment c){...} ...}.
2021-08-06 00:07:21 70
原创 设计模式之结构模式:装饰器模式
/*v1.0*/class A{... void display(){...}...}class A1:public A{... void display(){...}...}...class An:public A{... void display(){...}...}//..............class A11:public A{... void display(){ ... ::display(); ... .
2021-08-05 23:51:43 92
原创 设计模式之行为模式:模板方法模式
在工厂模式与抽象工厂模式一文中提到设计Human类,父类是Human,还设计了6个子类,为什么要设计7个类?直接设计6个类不好吗?其实这就是模板模式,父类为子类提供模板,子类实现个性化。模板模式适用于不同的对象处理某类事物,算法框架相同而实现细节不同时使用,其实际就是利用多态的概念,采用继承的方式,将共同的部分进行抽象为父类,而子类实现细节或个性化。类的总数增加了,但是冗余代码减少,扩展性增强。...
2021-08-05 10:12:19 70
原创 设计模式之结构模式:桥接模式
厨房要做鱼:/*v0.1*/class CookingFish{... CookingFish *cooking(){...}...}一会又告诉你不能仅仅做普通的鲫鱼(FishA),还考虑桂鱼(FishB):/*v0.2*/class CookingFish{... CookingFish *cooking(){...}...}class CookingFishA:public CookingFish{...}class CookingFishB:public
2021-08-04 11:21:18 74
原创 设计模式之创建模式:单例模式和原型模式
单例模式---只生一个就好,多了没有必要原型模式---大部分的内容都相似,没有必要一个一个参数去设定,有一个变为多个,不同的去修改就是了!比如说《帝国时代》中的农民!可能有很多,但是它们大部分的参数是相同的,一个场景中有很多个,这就没有一个一个new出来了,具体如何clone可以用很多方法(深度拷贝、迁拷贝、拷贝构造函数等),根据系统按需设计!...
2021-08-03 20:29:40 215
原创 设计模式之创建模式:建造者模式
假设要做西红柿炒鸡蛋。/*v1.0*/class TomatoAndEgg{}/*工厂*/class Factory{ TomatoAndEgg *getTomatoAndEgg{};}很得意,已经会用工厂模式了。别高兴地太早,问一个问题:西红柿炒鸡蛋是先炒蛋还是先炒西红柿?...这没个标准答案,有的人喜欢先炒蛋,有的人喜欢先炒西红柿!你可以说是先炒蛋,但是有的客人就喜欢先有的人喜欢先炒西红柿!你可以说这是变态,但不能说这没有!好吧,你改!/*v2.0*/cl
2021-08-03 19:09:36 111
原创 设计模式之创建模式:工厂模式与抽象工厂模式
假如要处理两类数据:男和女(男女考虑问题是不一样的)最简单的就是定义两个类(Male和Female)(V1.0)但是我们发现Male和Female是有共同部分的,所以这时候我们有定义了Human类,让Male和Female继承Human类(V2.0),这时候改动比较大。目前来说有三个类。然后我们有发现实际上还要考虑肤色,这时候有几种考虑:1.改Human类,添加有关肤色的内容,但是肤色凭什么比性别的层次高呢?2.改Male类和Female类,给其中添加与肤色有关的内容,这是肯定有大量..
2021-08-03 13:11:24 137
原创 变量、数组及结构
程序设计的时候,为了处理数据发明了变量。当数据比较多的时候,给变量命名就是个麻烦事。譬如开发一个学生成绩管理系统,有1万个学生,假设管理语文、数学、英语三门课程,这样的话有3万个基本变量,一行代码定义一个学生的话仅仅定义变量要1万行......如果有数组呢?很简单:float chiness[10000];float math[10000];float english[10000];三行足以!另外我们发现实际上这三个数据是有关联的,那怎么办呢?还是数组:float .
2021-08-01 12:10:25 262
原创 关于逻辑运算的一点想法
逻辑运算有三个基本操作:与、或、非。难道大家不感到奇怪吗?为什么一定是三个基本运算?与运算和或运算都是涉及2个操作数,而非运算只涉及1个操作数,它为什么这么特殊?看下面的变换:我们可以看到实际上与操作隐含了非操作和或操作,或操作隐含了非操作和与操作 。非操作是一种相反的操作,是使系统发生变化的一种力量(正变成负,高变成低,阴变成阳.....),y甚至可以说是基本力量!这很像古代哲学中的阴阳理论啊!非就是系统运动的原因(是1,是变化),是起点;与或是阴阳,与中有或,或中有与..
2021-07-04 10:55:38 222
原创 i=i++是怎么回事?
有一段程序,如下,问最后的结果是多少#include <stdio.h>int main(){ int i=0,j=0; for(j=0;j<100;j++){ i=i++; } printf("%d",i); return 0;}有很多人认为是100,其实i的结果是0;认为i是100的人是这样分析的:每个循环首先将i的值赋给i,然后i在加1。实际上这样的理解是错误的,这其中主要是涉及了对第5行的理解。i=i++;这个语句涉
2021-07-03 12:07:41 1639
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人