自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编程实现atoi函数

#include #include #define MAX_SIZE 100 int my_atoi(char *src) { int flag = 1; int result = 0; if(*src == '-') { flag = -1; src++;

2016-11-30 22:59:45 440

转载 函数局部变量的返回

昨天看到一道编程纠错题,在网上看到一个讲解非常详细的文章,这里拿来和大家分享一下:一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内

2016-11-29 12:15:02 249

原创 零欧电阻的作用

我们经常在电路中见到0欧的电阻,对于新手来说,往往会很迷惑:既然是0欧的电阻,那就是导线,为何要装上它呢?还有这样的电阻市场上有卖吗?其实0欧的电阻还是蛮有用的。  零欧姆电阻又称为跨接电阻器,是一种特殊用途的电阻,0欧姆电阻的并非真正的阻值为零(那是超导体干的事情),正因为有阻值,也就和常规贴片电阻一样有误差精度这个指标。  以下总结了零欧姆电阻的一系列用法。  1.在电

2016-11-28 22:14:46 288

转载 多线程的聊天室实现-服务器端

服务器端的主要功能: 实现多用户群体聊天功能(此程序最多设定为10人,可进行更改),每个人所发送的消息其他用户均可以收到。用户可以随意的加入或退出(推出以字符串“bye”实现),服务器也可以进行关闭。 服务器端的程序结构: 总共有三个函数:主函数(main),实现服务器端的初始化,接受连接;消息处理函数(rcv_snd),接受某一用户的消息,将其进行简单处理之后发送给其他所有的用户;退

2016-11-27 21:05:10 879

原创 编程中getchar()的灵活使用

getchar()在C程序中的功能是接收一个字符,当我们在连续输入字符的时候getchar()会给你意想不到的效果。下面是net小伙做的一些测试:首先看下面的这个程序:#include #include int main(void) { int a,b,c; printf("please input num a:\n"); scanf("%d",&a

2016-11-26 21:22:40 3014

转载 条件编译解析

这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。    条件编译命令最常见的形式为:    #ifdef 标识符    程序段1    #else    程序段2

2016-11-25 20:54:18 262

原创 Cortex-A8处理器的寻址方式

寻址方式为根据指令中给出的地址码字段寻找操作数地址的方式,cortex-A8有以下几种寻址方式1、寄存器寻址寄存器寻址是通过给出的寄存器编号得到所要的操作数,操作数是给出的寄存器的内容举例:MOV R1,R2(将R2的内容放到R1中)SUB R0,R1,R2(R1的内容减去R2的内容放到R0中)2、立即寻址一种特殊的寻址方式,指令中在操作码字段后的地址码部分为操

2016-11-24 22:14:58 1084

原创 网络通信模型:P2P模型

一、P2P模型的概念服务器是网络中最容易受到攻击的节点,一旦海量地向服务器发出服务请求,就能导致服务器瘫痪,以致所有客户都不能得到服务响应,为了解决这种问题,就出现了P2P模型。P2P可以理解为对等互联网,又翻译为点对点或者端对端。在P2P模型中网络的参与者共享它们所拥有的一部分资源,这些资源通过网络提供服务和内容,能被其他对等节点直接访问,网络的参与者既是服务提供者(server),又是资源

2016-11-23 20:51:35 6384

转载 【Linux C编程】sizeof面试题选

结构体和共用体的内存分配是C语言的一个难点,也是面试题中的热点。示例1: Union data1 { double d; int i; char c1; char c2[9]; };sizeof(union data1)的值为16.在编译器默认设置的情况下,该共用体最大基本类型为double,它占8字节,所以此共用体以8来对齐。字符数组c2占9个字节,那么整

2016-11-22 20:34:16 278

原创 浏览器/服务器模型

一、浏览器/服务器模型的概念浏览器/服务器模型(B/S模型)是一种对C/S模型的变化和改进,在这种模型中,用户界面完全通过WWW浏览器实现,一部分事务逻辑在浏览器实现,大部分事务逻辑在服务器中实现,它是一种特殊的客户/服务器模型,这种模型的客户是某种浏览器,采用HTTP协议通信。B/S模型通常由下面三层架构部署实施:① 客户端表示层:由Web浏览器组成,它不存放任何应用程序。② 应用服

2016-11-21 21:48:49 4239

原创 进程和线程间的联系和区别

进程概念  进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了

2016-11-20 17:19:33 267

原创 移位操作符详解

位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。  移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部

2016-11-20 14:27:21 2024 1

原创 【数据结构】:数据结构的基本概念

一、在介绍数据结构前,我们首先了解一下数据结构的作用。随着计算机应用领域的扩大和软硬件的发展,对于解决计算机的非数值计算问题占着越来越重要的比例,对此这就需要程序设计者设计出合适的数据结构。数据结构的研究主要是关于数据的各种逻辑结构,存储结构和各种操作。二、数据结构的基本术语1、数据数据是信息的载体,是描述客观事物的符号,能够被计算机识别、存储和加工处理。在计算机科学中,数据可

2016-11-18 21:36:20 457

转载 C语言中变量和函数的声明与定义

一、变量在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。局部变量在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。自动变量auto

2016-11-17 20:39:02 7386 1

原创 S3C2410A的GPIO介绍及应用

一、GPIO的概念GPIO的英文全称是General-Purpose Input/Output Ports,中文意思是通用I/O端口。在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号,GPIO就是满足这种需求的一种通用可编程I/O端口。对于每个GPIO端口,其至少需要两个寄存器,一个是控制用的“通用I/O端口控制寄存器”

2016-11-16 21:57:43 5734

原创 Linux网络编程:网络服务器的分类及运用

一、在之前设计的网络编程服务器中,涉及到的服务器都是最为简单的、一对一的服务器,也就是只与一个客户端建立通信。然而在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求, 对服务端的程序就提出了特殊的要求。二、循环服务器和并发服务器1、循环服务器:循环服务器描述了在一个时刻只处理一个请求的服务器实现方式,通过在单线程内设置循环控制实现对多个客户端请求的逐一响应,这种

2016-11-15 20:38:39 338

原创 简要认知数据库

数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据; 所谓有结构的,指的是数据是按一定的模型组织起来的。数据模型可用数据结构来描述。数据模型决定数据的组织方式、操作方法。理解数据库的前提是理解数据模型。现在的数据库多数是以关系模型来组织数据的。

2016-11-14 20:10:27 317

原创 常用汇编指令

1、     MOV(传送)指令写法:MOV  target,source功能描述:将源操作数source的值复制到target中去,source值不变注意事项:1)target不能是CS(代码段寄存器),我的理解是代码段不可写,只可读,所以相应这地方也不能对CS执行复制操作。2)target和source不能同时为内存数、段寄存器(CS\DS\ES\SS\FS\GS)3)

2016-11-13 21:05:53 692

原创 DSP:C54x定时器及使用定时器产生led的1s周期闪烁

一、C54x的片内定时器是一个可编程的定时器,同时可以用于周期性地产生中断,为16位计数器。定时器主要由定时器寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR(包括分频系数TDDR、预标定计数器PSC、控制位TRB和TSS等)及相应的逻辑控制电路组成。TIM是一个减1计数器,PRD用来存放定时时间常数(TIM寄存器的初值)。TCR中包括定时器的控制位和状态位,具体如下:

2016-11-12 22:06:01 9017

原创 sqlite3 编写简易通讯录

以下贴出的是我用sqlite3写的简易通讯录,若有什么错误望大牛指正#include #include #include #include #define MAX_SIZE 1024static sqlite3 *db = NULL;static char *errmsg = NULL;int count = 0;int dis();void welcome(){

2016-11-11 19:56:43 736

原创 排序的7种方法

一、快速排序1. 简单介绍  快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少

2016-11-11 13:15:00 288

原创 自增和自减运算

1、我们都知道自增运算符和自减运算符,如:i++ 和 ++i,i-- 和 i--。可能你会觉得这很简单,但是往往觉得简单的东西就越容易忽略它,下面举几个例子。#include int main() { int num; int i = 2; num = (i++) + (++i) + (i++) + (++i); p

2016-11-09 17:47:22 1651

原创 TCP/UDP的套接字网络编程模型

一、TCP的网络编程操作1、TCP服务器编程步骤:①. 创建一个socket,用函数socket()②. 绑定IP地址、端口等信息到socket上,用函数bind()③.设置允许的最大连接数,用函数listen()④.接收客户端上来的连接,用函数accept()⑤.收发数据,用函数send()和recv(),或者read()和write()⑥.关闭网络连接2、TCP

2016-11-08 21:20:14 923

原创 Linux套接字网络编程

1、OSI参考模型和TCP/IP模型OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的,它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂,但它仍是此后很多协议模型的基础。与此相区别的TCP/IP协议模型将OSI的7层协议模型简化为4层,从而更有

2016-11-07 23:57:09 733

原创 常用的数据校验方法

1.什么是数据校验 通俗的说,就是为保证数据的完整性,用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,就说明数据是完整的。2.最简单的检验 实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。适用范围:简单的数据量极小的通讯。3.奇偶校

2016-11-06 21:28:12 3791

原创 数据库:SQlite3的C接口相关函数

一、内容介绍我们在之前的文章中介绍到了SQlite数据库的相关内容及在命令下对数据库的相关操作,但我们通常是在项目中对数据库进行使用,这也就限制了我们不能运用命令行进行操作,但SQlite3给我们提供了相关的C接口,这是我们同样可以运用函数的形式运用嵌入式数据库。二、相关的SQlite3函数1、sqliite3_open函数的原型:int sqlite3_open(const ch

2016-11-05 20:19:11 1071

原创 多线程的同步和互斥

一、共享资源的使用1. 由于同一进程下的多线程是共用地址空间,因此就要考虑共享资源的使用。如果没有一定的规则,那么共享资源的内容就会显得杂乱无章,这里引入了同步与互斥的概念!2. 进行多线程编程,因为无法知道哪个线程会在哪个时候对共享资源进行操作,因此让如何保护共享资源变得复杂。为了解决共享资源的使用问题,通过下面这些技术的使用,可以解决线程之间对资源的竞争:a. 互斥量 Mu

2016-11-04 23:25:48 265

原创 sqlite数据库及常用命令

嵌入式数据库一.数据库综述数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据;* 有结构的,指的是数据是按一定的模型组织起来的。*  集成的指的是数据库中集中存放着企业各种各样的数据,集中存放的好处是:一个数据只需一个备份,重复存储少,即消除了数据的冗

2016-11-03 21:56:07 995

原创 单总线协议(1—wire)

一、单总线协议(1-wire)1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制。2.特点:这是由达拉斯半导体公司推出的一项通信技术。它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。3.优点:单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等。二、单总线通信过程1.初始化初始化过程

2016-11-03 17:39:35 2657

原创 Linux线程编程

一、线程的概念提及线程前,首先引入进程。进程是一个具有独立功能的程序的一次运行活动,是资源分配的最小单位。Linux系统是一个多进程的系统,进程间具有并行性、互不干扰的特点,即使一个进程发送异常,它也不会影响到系统中的其他进程。线程是进程的一个执行流,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位。一个进程由多个线程组成,线程与同属一个进程的其他线程共享进程所拥有的全部资

2016-11-01 21:39:06 179

空空如也

空空如也

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

TA关注的人

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