自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

colorful technology,wonderful life!---多彩科技,技术人生!

科技创造更便捷,更舒适,更美好的生活!

  • 博客(37)
  • 资源 (6)
  • 收藏
  • 关注

转载 c# -- 对象销毁和垃圾回收

有些对象需要显示地销毁代码来释放资源,比如打开的文件资源,锁,操作系统句柄和非托管对象。在.NET中,这就是所谓的对象销毁,它通过IDisposal接口来实现。不再使用的对象所占用的内存管理,必须在某个时候回收;这个被称为无用单元收集的功能由CLR执行。对象销毁和垃圾回收的区别在于:对象销毁通常是明确的策动;而垃圾回收完全是自动地。换句话说,程序员负责释放文件句柄,锁,以及操作系统资源

2015-08-04 20:52:15 864

转载 16/24点阵字库(经典)

比如汉字“中”的内码是0xd6d0,而他的区位码是5448.这个是怎么转换的呢?区位码不是内码减去0xa0a0吗?怎么算的呢?问题补充: 找到答案了:汉字机内码、国标码和区位码三者之间的关系为: 区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码; 机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分

2015-07-26 23:37:16 2799

转载 C#实现插件式架构的方法

插件式架构,一种全新的、开放性的、高扩展性的架构体系.插件式架构设计近年来非常流行,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。基于插件设计并不神秘,相反它比起一团泥的设计更简单,更容易理解。下面已C# .Net简要介绍一下插件式架构的方法.定义插件接口

2015-07-25 13:08:25 1009

原创 winform布局

winform布局1、采用流布局:工具箱里边容器里有一个:FlowLayoutPanel的控件。你可以把这个控件Panel加进你的FORM,再在这个布局控件上面添加你的控件。这样,不管你的窗体初始大小是多大都可以使你的窗体在最大化的时候,或者改变窗体大小的时候,里边的控件也随着一起变大或者变小。不影响界面! 2、用panel控件,把控件进行分区,然后设置空间

2015-07-20 23:17:09 1083

转载 socket编程原理

1、问题的引入1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用户进程多次调用“

2015-01-07 17:38:21 883

转载 动态库和静态库的创建

使用Automake 创建和使用静态库1. 目录结构如下:example|——src 目录(存放源代码文件)        |——hello.c|——lib 目录(存放用来生成库的文件)        |——test.c 用来生成静态库libhello.a|——include 目录(存放程序中使用的头文件)        |——hello.h2. 编写的各个

2014-09-17 16:26:17 699

转载 Keil C51编译及连接技术

主要介绍Keil C51的预处理方法如宏定义、常用的预处理指令及文件包含指令,C51编译库的选择及代码优化原理,C51与汇编混合编程的方法与实现以及超过64KB空间的地址分页方法的C51实现。教学目标  1.了解Keil C51的预处理方法,主要有宏定义#define、常用的预处理指令#define、#error、#if 、#else、#elif、#endif、#ifdef、#ifndef

2014-09-17 15:34:56 4369

转载 SCP 命令

linux之cp/scp命令+scp命令详解   名称:cp使用权限:所有使用者使用方式:cp [options] source destcp [options] source... directory说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。把计-a 尽可能将档案状态、权限等资料都照原状予以复制

2014-09-10 17:32:25 387

转载 Linux时间函数

简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec1.1 time_t时间类型time_t类型在time.h中定义:[cpp] view plaincopyprint?

2014-08-15 11:55:48 414

转载 sprintf使用

对于熟悉C的人来说,sprintf并不陌生,在很多情况下,一般都会使用sprintf来代替itoa.sprintf函数的原型是:int sprintf(char* str, const char* format, ...);    除了前两个参数类型固定外,后面可以接任意多个参数,格式化输出一个字符串:1) 整数格式化输出    如果要将数字 3915 保存到字符串str中/*假定

2014-08-07 17:10:52 574

转载 STRTOK函数和STRTOK_R函数

1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct person{     char name[25];     char sex[10];     char age[4]; }Person;需从字符串 char buffer[INFO_MAX_SZ]="Fred male 25,John male 62,A

2014-08-07 16:27:03 748

转载 interrupt 和 using 在C51中断中的使用

32个I/O口(4 组8bit 端口);两个16位定时计数器;全双工串行通信;6个中断源(2个外部中断、2个定时/计数器中断、1个串口输入/输出中断),两级中断优先级;128字节内置RAM;独立的64K 字节可寻址数据和代码区。中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最

2014-07-22 14:18:52 1582

转载 keil .sct分散加载文件及其应用

分散加载能够将加载和运行时存储器中的代码和数据描述在被称为分散加载描述文件的一个文本描述文件中,以供连接时使用。(1)分散加载区分散加载区域分为两类:? 加载区,包含应用程序复位和加载时的代码和数据。? 执行区,包含应用程序执行时的代码和数据。应用程序启动过程中,从每个加载区可创建一个或多个执行区。映象中所有的代码和数据准确地分为一个加载区和一个执行区。(2)分散加载文件示

2014-07-22 10:51:19 789

转载 wireshark过滤语法总结

做应用识别这一块经常要对应用产生的数据流量进行分析。抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑子记不住东西)wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤。对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如tc

2014-07-22 08:48:50 396

转载 C语言#pragma预处理

在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为:   #pragma para其中para 为参数,下面

2014-07-13 18:14:39 430

转载 STARTUP.A51详解

STARTUP.A51 这个文件有什么用,有必要添加到工程吗?  如果不添加"startup.a51"文件,编译器就会自动加入一段初始化内存以及堆栈等的代码,这时的内存初始化部分你就无法去控制了,当然这在大部分情况下没什么关系。但是如果你想你的程序在复位后,内存里面的信息依然还保存着(所说的“热复位”),那么你就需要添加该启动文件,并且去里面修改内存初始化部分,不要初始化你需要保留的部分内存。

2014-07-13 18:00:38 3767

转载 有关 sizeof和strlen的总结

先看看sizeof()一、sizeof的概念sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。其实可以简单的理解sizeof是征对"类型"的。二、sizeof的使用方法 1、用于数据类型  sizeof使用形式

2014-07-13 17:44:58 447

转载 hex和bin文件格式的区别

Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。Intel HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。  很多编译器的支持生成HEX格式的烧录文件,尤其是Keil c。但是编程器能够下载的往往是BIN格式,因此HEX转BIN是每个

2014-07-13 17:37:57 849

转载 BIN和HEX文件的区别

HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:  1、HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身。在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。  2、BIN文件格式,对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二

2014-07-13 17:35:29 942

转载 C51单片机内存优化

52本身有256B的数据存储区,如果没在意一些细节,很容易出现RAM超过128就报错的情况。现讲其问题解释如下:  最常见的是以下两种:  ① 超过变量128后必须使用compact模式编译,实际的情况是只要内存占用量不超过256.0,就可以用 small 模式编译  ② 128以上的某些地址为特殊寄存器使用,不能给程序用。与 PC 机不同,51 单片机不使用线性编址,特殊寄存器与 R

2014-07-13 17:06:28 1046

转载 51单片机:存储器结构

1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时

2014-07-13 16:54:44 1925 1

转载 Keil C51 详细设置

一.target名更改       打开Keil后,左侧Project Workspace中的target可改,方法:右击Target——Manage Compnents——双击待修改项即可,若要添加,使用对话框内对应工具栏。二.option for target 设置之TARGET项1 MEMARY MODELSmall:变量存储在内部ram里.Compact:变量存储在外部

2014-07-13 16:15:32 1428

转载 内存动态分配与释放

1.   C语言的函数malloc和free (1) 函数malloc和free在头文件中的原型及参数       void * malloc(size_t size)动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。       void  free(void *ptr)释放动态申请的内存空间,调用free()后ptr所指向的内存空间被收回,如果

2014-07-08 09:18:42 567

转载 Base64编码解码C语言实现

static const char *codes =   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";    static const unsigned char map[256] = {  255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2

2014-06-28 15:52:19 2160

转载 Linux驱动程序框架介绍

Linux驱动程序框架。        一、linux的设备驱动程序与外界的接口可以分为三个部分:  1.驱动程序与操作系统内核的接口。通过file_operations(include/linux/fs.h)数据结构来完成的。  2.驱动程序与系统引导的接口。这部分利用驱动程序对设备进行初始化。  3.驱动程序与设备的接口。这部分描述了驱动程序如何与设备进行交互,与具体的设备密切

2014-06-26 23:39:43 517

转载 内存对齐

一.内存对齐的初步讲解内存对齐可以用一句话来概括:“数据项只能存储在地址是数据项大小的整数倍的内存位置上”例如int类型占用4个字节,地址只能在0,4,8等位置上。例1:#include struct xx{        char b;        int a;        int c;        char d;};int main()

2014-06-23 23:50:18 359

转载 C语言中的数据类型及其转换详解

C语言中的类型按其组成可以分为简单类型和构造类型,按是否预定义了类型名字和值集可以分为基本类型和非基本类型,按是否加了类型限定符可以分为限定类型和非限定类型。  ANSI C99标准中类型定义的BNF语法如下图。  说明:typedef可以定义新数据类型,如typedef long int FOUR_BYTE_INT,即定义了和long int一样的数据类型FOUR_BYTE_

2014-06-09 17:44:04 568

转载 STM32的栈增长和大端/小端问题是和CPU相关的两个问题

1,首先来看:栈(STACK)的问题.函数的局部变量,都是存放在"栈"里面,栈的英文是:STACK.STACK的大小,我们可以在stm32的启动文件里面设置,以战舰stm32开发板为例,在startup_stm32f10x_hd.s里面,开头就有:Stack_Size      EQU     0x00000800表示栈大小是0X800,也就是2048字节.这样,CPU处理

2014-05-20 18:05:26 2067

转载 STM32串口IAP实验

IAP,即在应用编程。很多单片机都支持这个功能,STM32也不例外。在之前的FLASH模拟EEPROM实验里面,我们学习了STM32的FLASH自编程,本章我们将结合FLASH自编程的知识,通过STM32的串口实现一个简单的IAP功能本章分为如下几个部:53.1 IAP简介53.2 硬件设计53.3 软件设计53.4 下载验证53.1 IAP简介   IAP(I

2014-05-19 23:12:23 1973

转载 STM32芯片片内FLASH模拟EEPROM实验

STM32本身没有自带EEPROM,但是STM32具有IAP(在应用编程)功能,所以我们可以把它的FLASH当成EEPROM来使用。本章,我们将利用STM32内部的FLASH来实现第二十八章类似的效果,不过这次我们是将数据直接存放在STM32内部,而不是存放在W25Q64。本章分为如下几个部分:39.1 STM32 FLASH简介39.2 硬件设计39.3 软件设计39.4 下载验

2014-05-19 23:09:56 6280

转载 解决TCP连接数过多的问题

TCP状态迁移,CLOSE_WAIT & FIN_WAIT2 的问题TCP状态迁移大家对netstat -a命令很熟悉,但是,你有没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是 什么意思呢,在这篇文章,我将会详细的阐述。大家很明白TCP初始化连接三次握手吧:发SYN包,然后返回SYN/ACK包,再发AC

2014-05-19 12:51:12 3416

转载 TCP协议可靠性数据传输实现原理分析

TCP 协议是一种面向连接的,为不同主机进程间提供可靠数据传输的协议。TCP 协议假定其所使用的网络栈下层协议(如IP 协议)是非可靠的,其自身提供机制保证数据的可靠性传输。在目前的网络栈协议族中,在需要提供可靠性数据传输的应用中,TCP 协议是首选的,有时也是唯一的选择。TCP 协议是在最早由Cerf和Kahn[1]所提出的有关网络数据包传输协议的概念之上建立的。TCP 协议被设计成符合分层协议

2014-05-16 14:44:25 574

转载 堆和栈的区别

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态

2014-05-09 15:59:34 499

转载 从头至尾漫谈虚函数

程序员编程艺术:第八章、从头至尾漫谈虚函数作者:July。出处:http://blog.csdn.net/v_JULY_v 。 前奏    有关虚函数的问题层出不穷,有关虚函数的文章千篇一律,那为何还要写这一篇有关虚函数的文章呢?看完本文后,相信能懂其意义之所在。同时,原狂想曲系列已经更名为程序员编程艺术系列,因为不再只专注于“面试”,而在“编程”之上了。ok,如果有不正之

2013-11-19 22:54:44 668

原创 QT的事件系统

QT中定义的事件,是一个从QEvent类继承而来的对象,它表示应用程序内部或外部发生了某些应用程序自身必须知道的事情。任何从QObject类派生的对象都可以通过调用QObject::event()函数接收事件。事件产生时,QT会创建一个合适的QEvent对象或子对象,然后通过调用QObject::event()函数将这个事件对象传给特定的QObject对象或子对象。需要注意的是,event()函数

2013-09-21 01:40:41 995

转载 UTF-8 GBK UTF8 GB2312 之间的区别和关系

UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示

2013-09-08 18:29:26 558

转载 Qt中translate、tr关系 与中文问题

题外话:何时使用 tr ?在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住中文(源码用中文,

2013-09-08 17:48:54 511

一个报文的路由器之旅(V1.0)

网络报文在电信设备网络中传输过程描述,涉及到L2/L3层转发,QOS等内容。

2018-07-10

算法学习笔记

算法学习笔记,在线算法编程平台leetcode学习总结,不断更新中。。。

2018-04-09

文件系统详细介绍

详细介绍了文件系统组成,硬盘结构组成,和闪存结构,系统又详细,有实用价值。

2011-11-19

经典C语言程序105例

学习c语言经典实例,涉及排序,数据结构,文件,图像实现等,非常实用。

2011-11-19

程序员面试题

C语言面试题,非常实用,找工作不可多得的资源。

2011-11-19

Linux常用命令全集

Linux常用命令全集,包括文件管理,文件传输,磁盘管理等常用命令全集。

2010-07-03

空空如也

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

TA关注的人

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