C
文章平均质量分 57
cos_sin_tan
热爱移动开发,专注成长
展开
-
因式分解小题
#include #include #include #include int len ,*data;char panduan[100097];int ready(int *buff){ int i , j; int *t =buff; for (i = 2;i< 100000;i++) {转载 2012-12-15 10:27:40 · 535 阅读 · 0 评论 -
白话算法之快速排序
转自:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html白话经典算法系列之六 快速排序 快速搞定快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这转载 2012-11-08 23:49:27 · 557 阅读 · 0 评论 -
freemodbus
今天在群里看到xxx先生 在说modbus,说直接移植的freeemodbus,一阵伤感啊,以前俺是自己写的modbus。。。不过,学习了~~~~\(≧▽≦)/~啦啦啦原创 2012-11-08 16:44:37 · 883 阅读 · 0 评论 -
白话经典算法系列之一 冒泡排序的三种实现
转自:http://blog.csdn.net/morewindows/article/details/6657829冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果转载 2012-11-09 10:19:53 · 471 阅读 · 0 评论 -
mystrcat
#include"mystrcat.h"char * mystrcat(char *dest,char *source){ int len_dest = strlen(dest); int len_source = strlen(source); char *p1 = NULL; char *p = (char *)malloc((sizeof(char)*((l原创 2012-11-07 21:27:47 · 948 阅读 · 1 评论 -
这其实是一个很简单的代码。。。。糊涂
#include#define a (x+1)int x = 2;void b() {int x = 1;printf("b() a is %d\n",a);}void c() {printf("c()2 a is %d\n",a);}main(){ b(); int x =9; x++; c();}不过乍一看会容易粗心的~~~~~~~~~~原创 2012-10-29 07:45:46 · 668 阅读 · 2 评论 -
指针的加一
#includeint main(){ int *a = 0x00000000; char *b = 0x0000; long long int *c=0x00; printf("\na is %d\n",a); a++; printf("\na is %d\n",a); printf("\nb is %d\n",b); b++; printf原创 2012-11-02 16:24:36 · 483 阅读 · 0 评论 -
没有的itoa(),整数转换成对应的字符串
/**int num = 100;*char str[25];*myitoa(num, str, 10);*printf("The number 'num' is %d and the string 'str' is %s. \n" ,num, str);*/char *myitoa(int num,char *str,int radix){ /* 索引表 */转载 2012-11-02 15:07:56 · 532 阅读 · 0 评论 -
Linux网络编程之tcpdump抓包分析TCP三次握手过程
博主:这篇文章是真好啊。刚刚在网上看到的都是些tcpdump的参数解析,我了个去!还是这个好,不过这个运行时(1)client端要注意:./client 127.0.0.1(2) tcpdump 'port 20000' -i lo -S //20000后面是 字母 l o ,一开始看成是管道符号。。。囧 转自:http://blog.csdn.net/polarb转载 2012-10-23 21:05:41 · 2707 阅读 · 0 评论 -
linux中select()函数分析
转自:http://blog.csdn.net/zi_jin/article/details/4214359Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生转载 2012-10-22 19:55:27 · 818 阅读 · 0 评论 -
对监听套接字进行read、write和connect操作会怎样?
博主:恩恩~~~值得好好想想哦~~~~~~~~~转自:http://blog.csdn.net/moonvs2010/article/details/7783572 已经学习的时候没有想过这个问题,只知道用监听套接字来执行accept操作,获取与客户端的连接,从来就没想过如果对监听套接字执行普通套接字的操作会怎样,今天特意做了个实验,对这三种情况进行测试。 一、 read操作转载 2012-10-22 17:09:55 · 1478 阅读 · 0 评论 -
白话经典算法系列之二 直接插入排序的三种实现
转自:http://blog.csdn.net/morewindows/article/details/6665714直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]转载 2012-11-09 11:19:12 · 437 阅读 · 0 评论 -
维基百科,希尔排序
希尔排序维基百科,自由的百科全书希尔排序Shellsort with gaps 23, 10, 4, 1 in action.分类排序算法数据结构数组最差时间复杂度根据步长序列的不同而不同。 已知最好的: 最优时间复杂度O(n)平均时间复杂度根据步长序列的不同而不同。转载 2012-11-09 19:37:21 · 2208 阅读 · 0 评论 -
关于白话排序之快速排序以及维基百科的希尔排序
1、白话排序的快速排序中,“坑”的形象概念,很好好好2、维基百科中 ,将每次的间隔的元素,不是采用白话中 所用的A1、A2等的形式,而是采用直接放在一列,进行列排序的形象概念,很好好好3、希尔排序,最外边一层是gap的减少,里面两层---》插入排序。。。。。。原创 2012-11-09 19:43:06 · 959 阅读 · 0 评论 -
error: storage class specified for parameter
@http://hi.baidu.com/melon_jp/item/3d64313393bb1ef0a9842844error: storage class specified for parameter今天编译时,出现error: storage class specified for parameter问题在当前行查找时,并没有发现错误,仅仅定义了一个结构体后向上追溯,发原创 2012-12-26 15:02:20 · 27896 阅读 · 15 评论 -
一个小题目分析
转自:http://blog.csdn.net/coolbacon/article/details/8282867网上朋友聊天,随便出了个简单的题目。对一个正整数(不含0)进行因数分解。要求:输入:100输出:2 * 2 * 5 * 5 = 100输入:13输出:13 = 13很简单的一个题目。时间有限,只给十分钟。很快,被问者给出答案:#include转载 2012-12-11 19:25:59 · 542 阅读 · 0 评论 -
序列是否能够由进出栈得到
#include#include/* *关键点在于:每个数后面比它小的数都应按严格递减排列 *4 3 2 5 1 ok *5 3 1 4 2 no */int a[100];int main(){ int N = 0; int j = 0; int m = 0; int last = 0; int flag = 1; printf("原创 2012-12-23 14:04:07 · 649 阅读 · 0 评论 -
#和##
(一)宏定义中的## 连接符与# 符 ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MSD转载 2012-12-23 10:01:00 · 540 阅读 · 0 评论 -
宏
今天看到这样一种写法,乍一看没回过神,以为前者等同后者前者:#define IP_PCB \ /* ip addresses in network byte order */\ ip_addr_t local_ip; \ ip_addr_t remote_ip; \ /* Socket options */原创 2012-12-22 15:08:03 · 976 阅读 · 0 评论 -
C语言变量声明及内存分配
C语言变量声明及内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类转载 2012-12-02 08:43:04 · 888 阅读 · 0 评论 -
100以内的素数
#includeint main(){ int i = 0; int j = 1; int flag = 0; for(;i<=100;i++) { flag = 0; for(j=2;j*j<i;j++) { if(i%j == 0) { flag = 1; break; } } if(flag原创 2012-12-01 12:47:13 · 986 阅读 · 3 评论 -
【转】地址重定位:静态重定位和动态重定位
转自:http://blog.csdn.net/sikinzen/article/details/5694627 转自:http://bbs.pediy.com/showthread.php?t=76876 在这之前我一直对地址重定位的细节不是很了解。以下文章摘自《操作系统原理DOS篇(第二版)》。是我目前看过的关于重定位的最好的文章。与大家分享一下。 以下介绍程序是如何装入内转载 2012-12-02 20:39:41 · 1489 阅读 · 0 评论 -
C语言编译全过程剖析
内容摘要 C语言编译的整个过程是非常复杂的,里面涉及到的编译器知识、硬件知识、工具链知识都是非常多的,深入了解整个编译过程对工程师理解应用程序的编写是有很大帮助的,希望大家可以多了解一些,在遇到问题时多思考、多实践。 一般情况下,我们只需要知道分成编译和连接两个阶段,编译阶段将源程序(*.c)转换成为目标代码(,一般是obj文件,至于具体过程就是上面说的那些阶段),连接阶段是把源程序转换成的目标代转载 2012-12-01 11:20:36 · 717 阅读 · 0 评论 -
白话经典算法系列之三 希尔排序的实现
转自:http://blog.csdn.net/morewindows/article/details/6668714#quote希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元转载 2012-11-09 19:15:58 · 1022 阅读 · 0 评论 -
今天犯傻了,突然想不明白,为啥一个数据cpu能够分辨出来是数据还是地址
今天犯傻了,突然想不明白,为啥一个数据cpu能够分辨出来是数据还是地址,为啥还能根据分辨出来的是地址,从地址总线发出,分辨出来的是数据,从数据总线发出。。。好吧,有那么瞬间,我呆掉了~~~~后来想明白了:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::cpu如何区分一个数据,如0x200原创 2012-10-30 20:47:08 · 1334 阅读 · 2 评论 -
为什么写入文本的内容会出现一些不能顶格的情况
char first[5]="aa\n";char second[5]="aa\n";write(fd,first,sizeof(first));write(fd,second,sizeof(second));写入之后呢,文件中会换行,然后会出现神奇的不顶格的现象,有点不明白,用notepad看的话第二行就是,nullnull原创 2012-10-22 14:54:49 · 1778 阅读 · 0 评论 -
__attribute__ ((packed)) 对齐或者取消对齐实例,注意摆放位置,不然没办法跟编译器好好讲话
#include#includetypedef struct{char a;short b;int c;}__attribute__ ((packed)) sttest ;/*__attribute__ ((packed));*/int main(void){ char stsize; sttest stTest; void *ad原创 2012-09-28 19:44:40 · 1440 阅读 · 0 评论 -
CRC校验码的生成编码
#include#include#define ushort unsigned shortushort CrcCal(unsigned char *fp_CRC,unsigned char count) { unsigned int CRC=0xFFFF; //一开始存在寄存器中的数 unsigned char CRC_count; i转载 2012-06-15 10:00:53 · 1159 阅读 · 0 评论 -
优先级 (<<) 和 (+)
原本在我的印象中,怪不得那个程序总是出错,单步才发现~~~原创 2012-06-10 14:17:23 · 482 阅读 · 0 评论 -
C语言中sprintf()函数的用法
转自:http://nnssll.blog.51cto.com/902724/198237/sprintf函数的用法1、该函数包含在stdio.h的头文件中。2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。转载 2012-05-09 09:41:34 · 52012 阅读 · 1 评论 -
C中%3d的含义
%3d的意思是,给当前输出项默认最少分配三个输出位置,如果输出的内容少于三个字符,那么在其前面补上空格,如果多于三个字符,那么安原文输出printf("%3d",2);结果就是:空格空格2printf("%3d",22);结果就是:空格22printf("%3d",1234);结果就是:1234而%-3d正好相反,是在输出项后面补上空格如:printf("%转载 2012-05-09 09:37:39 · 14462 阅读 · 0 评论 -
C语言中volatile关键字的作用
转自:http://blog.csdn.net/tigerjb/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水转载 2012-04-11 09:07:56 · 491 阅读 · 0 评论 -
char (*(*p[3])( int ))[5] 等等一系列
转自:csdnblog看这个:C指针声明解读之左右法则C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:转载 2012-01-24 20:44:08 · 2644 阅读 · 0 评论 -
数据段,代码段,BBS,堆,栈
非常全的BSS,数据段,堆,栈,代码段的用途,http://blog.163.com/muren20062094%40yeah/blog/static/161844416201151675228203/转载 2012-01-11 19:39:59 · 641 阅读 · 0 评论 -
多个文件在项目中
1:定义要放在.c文件 . h里面只放声明 例如 unsigned char code san[]={ 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00, 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x2原创 2011-12-19 14:56:26 · 448 阅读 · 0 评论 -
请起立,C语言之父Dennis Ritchie过世
转自:http://club.kdnet.net/dispbbs.asp?id=7840187&boardid=1&page=1&1=1#7840187昨日,在众多的国际互动论坛上,计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅转载 2011-10-15 22:39:06 · 1136 阅读 · 0 评论 -
关于指针的一点儿小知识
博主: 这个娃说的挺对胃口的,转了 1:转自:http://www.360doc.com/content/11/0925/16/6527018_151129737.shtml很多人把指针说的洪水猛兽似的,其实就那么回事儿嘛 2:字符指针与整形指针的一点儿分析转转载 2011-09-25 16:51:08 · 511 阅读 · 0 评论 -
fread fwrite实例
#include#include#includestruct user {char name[20];char passwd[20];};int gen();int main(){gen();return 0;}int gen(){struct user *p;FILE *fp; p=malloc(sizeof原创 2012-06-23 19:39:43 · 886 阅读 · 0 评论 -
使用vc++建立一个utility工程
1:新建utility project2: project ----->add file 文件类型选择,*c ,*h的,进行添加将需要添加的文件添加进去建好之后,有个好处是,查找方便。3:不要用ctrl+F,而是使用这个图标(find in files)原创 2012-06-26 20:57:20 · 824 阅读 · 0 评论 -
linux 常用头文件
转自:http://hi.baidu.com/%C1%F8826742781/blog/item/82d6b9ff6aad4138700eec7d.html#lastcmt 验证程序断言 cpio归档值 字符类型 目录项 出错码 文件控制转载 2012-07-22 21:11:27 · 1717 阅读 · 0 评论