自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

痞子晶的博客

生命不息 coding不止 :)

  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

转载 keil c 常见错误和警告

C51编译器识别错类型有三种1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出提示但不产生目标文件,错误超过一定数量才终止编译。3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序员应斟酌处理。D.1 致命错误C_51 FATAL_ERROR

2016-07-30 13:00:12 52864 2

原创 ARM9 mini2451裸机学习——LCD学习(1)

基础知识:LCD概述:    LCD(Liquid Crystal Display),即液晶显示器,是一种采用了液晶控制透光度技术来实现色彩的显示器。LCD有多种类型,比如STN、TFT、LTPS TFT、OLED等。CPU或显卡发出的图像数据是TTL信号,LCD本身接收的也是TTL信号。由于TTL信号在高速率的长距离传输时性能不佳,抗干扰能力也比较差,后来又提出了多种接口,比如LVD

2016-07-23 10:32:38 1854

原创 ARM9 mini2451裸机学习——NAND flash驱动学习 2

上一篇文章主要学习了NAND Falsh的基础知识,今天则来总结NAND Flash的初始化,以及块擦除,页的读写操作,以及芯片id号的获取。6. NAND FLASH 的操作接口我们知道,函数在调用时需要使用栈,当项目的函数调用关系复杂时,尤其是存在多级函数调用时,容易导致栈溢出,此处函数调用的开销也会逐渐加大。为了更好的解决上述问题,一般使用宏的形式来实现规模较小的

2016-07-21 23:39:08 887

原创 干饭人日记-2

2021.2.23 晴今天是没带饭的第二天,更饿

2021-02-23 11:22:49 188

原创 干饭人日记-1(补)

干饭人日记-1(补)2021.2.22 晴 今天是减肥的第一天,好饿

2021-02-23 11:22:12 265 1

原创 聊天室项目服务器端的并发问题——使用线程池技术(1)

一、原因 之前在聊天室项目中,服务器端模型的选择了单客户端单线程,统一accept()的模型,大致就是一个在一个线程中循环accept接受客户端连接,接受到一个连接就创建一个专用线程。在客户端连接的时间段中,线程一直保持。 这种模型虽然比多进程并发模型更加优秀,如占用资源少,可以数据共享,响应快。但是如果考虑高并发的情况,例如在很短的时间有大量的用户请求需要处理,会极快的消耗掉服务器的线

2016-10-31 22:35:09 869

转载 有一个理财管理数据库,包括客户Client,资金账户Fund,经理人Manager,投资流水Investment,理财产品Product。(转)

转自http://blog.csdn.net/ivan804638781/article/details/52884531有一个理财管理数据库,包括客户Client,资金账户Fund,经理人Manager,投资流水Investment,理财产品Product。 回答以下问题:Client: 客户号(Cno),姓名(Cname),性别(Csex),所在城市(Caddr),资金账号(Fno) Fu

2016-10-23 20:50:33 2105

转载 linux硬链接与软链接(转)

linux硬链接与软链接 1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同

2016-10-22 14:19:10 272

转载 SQL基本操作(转)

(一)表操作一.创建表格SQL语言中的create table语句被用来建立新的数据库表格。create table语句的使用格式如下: create table tablename(column1 data type[constraint], column2 data type[constraint],

2016-10-12 19:41:19 332

原创 Linux内核知识个人小结

利用国庆假期复习了linux内核方面是知识,内核知识博大精深,因为时间较紧,来不及全面的复习,只是片面的挑自己认为是重点的复习。其中针对可能面试会被提问的方面,自己也做了一定的总结,记了一些笔记,在博客中分享。希望有错误或者不全面的地方大家能够指正(如果有人看的话。。科科)1、linux系统的组成: linux系统分为用户空间(user space)和内核空间(kernel space)。

2016-10-06 00:03:43 438 1

原创 位运算的一些算法

最近做题遇到的,先写这么多,再遇到再补充#include <stdio.h>int f(int x,int y) //x和y的平均值{ return (x&y)+((x^y)>>1); //x&y取相同的位与,结果是x,y相同位的一半 } //x^y取x,y不同位,右移1等价于除2 int main(){ pr

2016-09-27 00:40:03 332

原创 (C语言)如何用星号画一个圆

面试时被问到,当时思路不太清晰,没有完整的做出来#include <math.h>#include <stdio.h>#define R 10 //半径 #define X 10 //圆心x坐标 #define Y 10 //圆心Y坐标 int main(void){ int x,y; int m; int i; for(i=Y-R;i>=1;

2016-09-24 23:42:19 12502

原创 统计一个字符串中bit为1的个数

今天遇到的一个问题,感觉自己的代码效率不高 编写一个函数,实现统计一个字符串中bit为1的个数#include <stdio.h> int str_bit_count(char * p){ int count = 0,sum = 0; int n = 0; while((*p) != '\0') { n = *p; for(count

2016-09-22 20:19:14 2403

原创 Android系统的常用权限整理

Android系统的常用权限 权限 说明 ACCESS_NETWORK_STATE 允许应用程序获取网络状态信息的权限 ACCESS_WIFI_STATE 允许应用程序获取Wi-Fi网络状态信息的权限 BATTERY_STATE 允许应用程序获取电池状态信息的权限 BLUETOOTH 允许应用程序

2016-09-21 22:47:22 324

原创 今天遇到的涉及位运算的一道题

今天的一道面试题分享一下:unsigned int intvert(unsigned int x,int p, int n)实现对x的进行转换,p为起始转换位,n为需要转换的长度,假设起始点在右边,如x=0b0001 0001 ,p=4,n=3装换后x=0b0110 0001#include <stdio.h> unsigned int intvert(unsigned int x,int p, i

2016-09-20 23:39:02 288

原创 动手敲代码——链表(C语言实现)

已经经过测试,放心可用。 刚刚想起,前几天看的一篇文章说,链表用递归实现更简介,没有当时很奇怪,但是也没有深究,文中是用java实现的。最近比较忙,等有空我也来试试。/*链表的简单操作*/ #include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0int num = 0;typedef struct Node{

2016-09-20 20:59:05 371

原创 多种方法实现字符串逆序

/* 编写函数,实现字符串逆序 */#include <stdio.h>#include <string.h>#include <stdlib.h>char * func1(char * str) //普通逆序{ char * temp = str; while(*str++); char * result = (char *)malloc((str -

2016-09-20 00:41:41 490

原创 动手敲代码——栈(经典问题练习)

/*用栈实现计算器*/ /*经典的用来练习栈的题目,需要借助逆波兰表达式*/#include <stdio.h>#include <stdlib.h>#include <assert.h>#define MAXSIZE 64#define OK 1#define ERROR 0typedef struct{ int data[MAXSIZE]; int top;}sta

2016-09-19 00:05:18 945

原创 sort的工作原理

sort的工作原理最近在搞shell编程,遇到的知识我会整理下来sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 sort -u:就是在输出行中去除重复行 sort -r:sort默认的排序方式是升序,加-r就改成降序 sort -o:sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,如果想把

2016-09-16 20:38:46 1714

原创 动手敲代码——递归(汉诺塔问题)

/*N阶汉诺塔递归实现:如果将n个盘子(由小到大)从a通过b,搬到c,移动的规则如下:这些圆形盘只能在3个塔问进行移动.一 次只能移动一个盘子,且任何时候都不允许将较大的盘子压在比它小的盘子的上面。*///思路:把n-1个盘子移动到b柱子上,然后把第n个盘子移动到c柱子上,最后把n-1个盘子移动到c柱子上#include <stdio.h>int i = 0;void move(int n,cha

2016-09-10 20:52:41 355

原创 动手敲算法——归并排序

#include <stdio.h>void Merge(int *a,int left ,int right,int rightend) //只能作用于有序的数组排序 { if((NULL == a)) { return; } int temp[rightend+1]; int i = left; //注意,赋值

2016-09-10 13:18:27 283

原创 动手敲算法——快速排序

#include <stdio.h>void swap(int *x,int *y) //交换两个数 { *x = *x + *y - (*y = *x); //不用参数实现两个数交换 // int teleftp;// teleftp = *x;// *x = *y;// *y = teleftp;}int midian3(int *a,int left,int

2016-09-09 11:31:12 306

原创 动手敲算法——前言

很多人都有眼高手低的毛病,很多的算法,数据结构,讲到的话滔滔不绝,但是实际让他敲一敲,就会出现这样难的问题。包括我自己也是这样,昨天晚上用快排库函数qsort时,突发奇想,想自己实现。然后,晚上花了一个多小时时间,遇到各种问题,最后不得不翻出数据结构课本,仔细的回顾了一遍,才解决。完成之后,我想了一下,很多的算法我感觉自己会写,但是真的能又快又准确的敲出来吗?于是便有了把一些常用的,学过的,现在生疏

2016-09-09 11:28:39 219

原创 实现返回字符串中最长数字串函数

白天写的一个小练习,不难,但是粗心错了好几次,现在把代码贴出来:/*写一个函数,它的原型是int continumax(char *outputstr,char *intputstr);功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给一个函数参数outputstr所指的内存。例如:“abcd12345ed125ss123456789”的首地址传给i

2016-09-08 23:45:59 3265

转载 【转载】88行代码实现俄罗斯方块游戏(含讲解)

#include #include #include #include #include char gcText[] = " 1LJTSZ#";struct tetris { int _pool[16][32], (*pool)[32], tmap[8][4][16]; int x, y, s, st, t;}gt;void trsInit() { int

2016-09-08 23:37:35 1022

原创 c语言&&和||的短路性质分析

今天看到微软的一道面试题,如下 原题是:求 1 + 2 + 3 + … + n 要求:不能用乘除法,不能用if,while, switch,case, 不能用(a < b ? a : b)三目运算符这道题主要考察了&&运算的短路性质以及递归 答案如下:int foo(int n, int *sum) { int ret; ret = n&&fun3(n-1, sum

2016-09-05 00:06:47 5512

转载 几个常用的操作系统进程调度算法

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队

2016-09-04 23:31:56 273

原创 c语言实现输出2的1000次方

今天练得一个小程序,不算难,但是因为开始算法错了,废了我很多时间找错,最后发现此路不通,果断换一下思路以下是代码:/*输出2的1000次方*/#include &lt;stdio.h&gt;int main(void){ int a[1000]; //先定义一个足够大的数组 int i,j; for(i=0; i&lt;1000; i++) //先置零 { a[...

2016-09-02 01:22:38 5661 3

原创 约瑟夫问题(循环链表实现)

刚刚写好,原理很简单,重点是链表的建立和节点的删除,注意:要养成删除的节点后,释放申请的内存的好习惯:)代码如下:/*约瑟夫环:n个人坐一圈,从1到n给每个人编号。从m个人开始报数,数到第k个人,让他出局。然后从出局后下一个人开始报数,同样是第k个人,再让他出局,如此的反复,直到剩下最后一人。问题求剩下一个人编号是多少?(链表实现)*/ #include #include

2016-09-01 00:52:06 748

原创 关于char *和char []的个人理解

今天白天练习一些编程题遇到了一个问题,是代码写好后总是莫名出现段错误,再三检查语法和算法,百思不得其解。 之后突然想到,可能是把char *和char[]搞混了。原本应该是 char a[] = “hello”; 写成了char * a = “hello”;在这之前我一直以为两者没有区别,然后仔细的思考了一番,发现了问题的所在。一个linux进程分为几个部分(从一个进程的地址空间的低地址向高地址

2016-08-29 23:51:13 444

转载 非阻塞 connect

非阻塞 connect:在一个 TCP 套接字被设置为非阻塞之后调用 connect ,connect 会立即返回 EINPROGRESS 错误,表示连接操作正在进行中,但是仍未完成,与此同时 TCP 三次握手操作会同时进行。在这之后,我们可以通过调用 select 来检查这个链接是否建立成功。非阻塞 connect 有三种用途:1.我们可以在 TCP 三次握手的同时做一些其它

2016-08-29 10:04:31 542

转载 线程终止——线程的返回值

线程终止 如果进程中的任一线程调用了exit,_Exit或者_exit,那么整个进程就会终止。与此类似,如果信号的默认动作是终止进程,那么,把该信号发送到线程会终止整个进程。单个线程可以通过下列三种方式退出,在不终止整个进程的情况下停止它的控制流。(1):从启动例程中返回,返回值是线程的退出码(2):线程可以被同一进程中的其他线程取消(3):线程调用

2016-08-20 23:28:26 5336

转载 移位运算(乘、除、余)

乘:a=a*9分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改为: a=(aa=a*7分析a*7可以拆分成a*(8-1)即a*8-a*1, 因此可以改为: a=(a除:如何利用+,-,移位来实现除法.假设求 dividend / divisor方法一:首先想到的是用减法来实现.算法思想:对dividend 循环减 divisor, 减一次res++, 直到刚好减为0

2016-08-19 11:32:10 859

转载 6个变态的C语言写的Hello World【转】

6个变态的C语言写的Hello World2016-08-18 C语言教程下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码(加密源代码,嘿嘿)下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello4.c#define _________ }#define ________ putchar#define ____

2016-08-18 19:07:17 569

转载 linux c 下获取时间方法

Reference: http://net.pku.edu.cn/~yhf/linux_c/function/04.htmlasctime(将时间和日期以字符串格式表示)  相关函数 time,ctime,gmtime,localtime 表头文件 #include 定义函数 char * asctime(const struct tm * ti

2016-08-16 15:09:56 375

转载 静态库,共享库,动态加载库

静态库、共享库、动态库的创建和使用【zz】转载自http://blog.chinaunix.net/u/19573/showart_1822303.html通常库分为:静态库,共享库,动态加载库,。下面分别介绍。一、 静态库:1.概念:    静态库就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将程序中使用    到函数的代码从库文件中拷贝

2016-08-15 23:44:22 1461

原创 linux内存理解和整理

进程内存空间正在运行的程序,叫进程。每个进程都有完全属于自己的,独立的,不被干扰的内存空间。此空间,被分成几个段(Segment),分别是Text, Data, BSS, Heap, Stack。用户进程内存空间,也是系统内核分配给该进程的VM(虚拟内存),但并不表示这个进程占用了这么多的RAM(物理内存)。这个空间有多大?命令top输出的VIRT值告诉了我们各个进程内存空间的大小(进程内存空

2016-08-15 23:43:43 731

原创 sqlite3解决A table inthe database is locked

昨天写sqlite3数据库插入函数,总是只能插入一条数据,第二次数据插入不了,得到的报错信息是rc = 6,A table inthe database is locked因为我在插入之前调用了sqlite3_prepare(),被操作的表被SQL 语句编译后的字节码绑定,所以我想应该使用函数sqlite3_finalize()释放分配给字节码的内存空间 sqlite3_finaliz

2016-08-14 09:04:16 1873

原创 sqlite3错误码整理

sqlite3错误码整理#defineSQLITE_OK           0   /* 成功 | Successful result *//* 错误码开始 */#defineSQLITE_ERROR        1   /* SQL错误 或 丢失数据库 | SQL error or missing database */#defineSQLITE_INTE

2016-08-14 09:02:23 2843

原创 linux驱动ioctl函数

(以下为整理内容,代码为自己编写)一、ioctl的简介:虽然在文件操作结构体"structfile_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。 出于这样的原因,ioctl就有它的用处了————一些没办法归类的函

2016-08-13 13:09:23 685

基于小波变换的数字水印嵌入与提取_matlab代码

基于小波变换的数字水印嵌入与提取_matlab代码,小波变换,水印嵌入,水印提取,MATLAB

2019-01-27

用Python写的电影推荐系统

这是用Python写的一个电影推荐系统,希望对他人有帮助。

2019-01-27

空空如也

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

TA关注的人

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