随笔分类 -  C/C++

摘要:为什么会有字节序问题1. 内存以8bit为一个地址单位:早期的处理器地址以8bit为一个单位(8位处理器),也就是说一次可以访问8bit的数据,后来出现了16位,32位甚至64位的处理器,但为了兼容最早的8位处理器,因此沿用8bit为一个地址单位。2. 大于8位的处理器,如32位处理器,虽然每个8b... 阅读全文
posted @ 2014-11-26 09:26 Windeal 阅读(1286) 评论(0) 推荐(0)
摘要:1. 用宏定义调试用的DPRINT#define DEBUG_ENABLE#ifdef DEBUG_ENABLE#define DPRINT(fmt, args...) fprintf(stderr, "[DPRINT...][%s %d] "fmt"\n", __FILE__, __LINE__,... 阅读全文
posted @ 2014-11-26 09:24 Windeal 阅读(1403) 评论(0) 推荐(0)
摘要:转载请注明出处:windeal专栏Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq 结构体struct ifconf来获取网络接口的各种信息。ioctl首先看ioctl()用法ioctl()原型如下: #include int ioctl(... 阅读全文
posted @ 2014-09-16 17:57 Windeal 阅读(3122) 评论(0) 推荐(0)
摘要:转载自:九大排序算法再总结九大排序算法再总结分类:【算法导论】2013-01-03 21:4614723人阅读评论(5)收藏举报目录(?)[+]如果要转载,需要注明出处:http://blog.csdn.net/xiazdong本文是http://blog.csdn.net/xiazdong/art... 阅读全文
posted @ 2014-09-15 17:23 Windeal 阅读(260) 评论(0) 推荐(0)
摘要:转载自:浅谈《剑指offer》原题:求1+2+……+n如侵犯您的版权,请联系:windeal12@qq.com《剑指offer》上的一道原题,求1+2+……+n,要求不能使用乘除法,for、while、if、else、switch、case等关键字以及条件判断语句(a?b:c)。第一次看到这道题大约... 阅读全文
posted @ 2014-09-15 17:11 Windeal 阅读(608) 评论(0) 推荐(0)
摘要:算数运算1. 使用let命令 #!/sbin/bashvar1=2var2=3let sum=var1+var2echo $sum使用let命令式,变量前不需要加$号只用于整数运算,不适用浮点数2. 使用$[...][]的使用与let类似#!/sbin/bashvar1=2var2=3sum=$[ ... 阅读全文
posted @ 2014-09-15 10:17 Windeal 阅读(235) 评论(0) 推荐(0)
摘要:首先,给出本文要使用的例子,对一个数组a进行升序的插入排序算法的C语言描述[cpp]view plaincopyvoidinserSort(inta[],intlength){inti=1;for(i=1;i=0&&a[j]>key;j--){a[j+1]=a[j];}a[j+1]=key;}}什么... 阅读全文
posted @ 2014-09-10 14:59 Windeal 阅读(317) 评论(0) 推荐(0)
摘要:转载自陈浩coolshell.cn下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello1.c1234567891011#define _________ }#defi... 阅读全文
posted @ 2014-09-10 11:12 Windeal 阅读(366) 评论(0) 推荐(0)
摘要:线程同步 同属于一个进程的不同线程是共享内存的,因而在执行过程中需要考虑数据的一致性。 假设:进程有一变量i=0,线程A执行i++,线程B执行i++,那么最终i的取值是多少呢?似乎一定是i=2;其实不然,如果没有考虑线程同步,i的取值可能是1.我们先考虑自加操作的过程:a,首先将内存中i的值co... 阅读全文
posted @ 2014-09-04 10:40 Windeal 阅读(392) 评论(0) 推荐(0)
摘要:转载注明出处:Windeal学习笔记kil和raisekill()用来向进程或进程组发送信号raise()用来向自身进程发送信号。#include int kill(pid_t pid,int signo);int raise(int signo); ... 阅读全文
posted @ 2014-09-02 08:40 Windeal 阅读(291) 评论(0) 推荐(0)
摘要:1.#include #include #include void GetMemory(char *p);void Test();int main(){ Test(); return 0;}void GetMemory( char *p ){ p = (char *) malloc( 100 );}... 阅读全文
posted @ 2013-06-09 10:41 Windeal 阅读(202) 评论(0) 推荐(0)
摘要:1. strcpychar *strcpy(char *strDst, char *strSrc){ assert(strDst != NULL && strSrc != NULL); char *tmpDst = strDst; while((*tmpDst++ = *strSrc++) != ... 阅读全文
posted @ 2013-06-09 09:56 Windeal 阅读(230) 评论(0) 推荐(0)
摘要:一、C语言分配内存的函数#include void *malloc(size_t size);void *calloc(size_t nobj,size_t size);void *realloc(void *ptr,size_t newsize); ... 阅读全文
posted @ 2013-06-07 19:27 Windeal 阅读(383) 评论(0) 推荐(0)
摘要:volatile一、什么是volatile?什么是编译器优化volatile是一个类型修饰符,它的主要作用是防止编译器进行优化。那么什么是编译器优化呢,我们看两个个例子:例1: x = 0x04;x = 0x06;x = 0x08;对于硬件来说这是3条指令,依次执行,但是如果让编译器进行编译,则它会... 阅读全文
posted @ 2013-06-05 16:14 Windeal 阅读(369) 评论(0) 推荐(0)
摘要:C语言变量的存储方式——auto,register,static关键字1.auto编译器在默认缺省的情况下,所有的关键字都是auto的。没什么好说的。2.registerregister关键字要求编译器尽可能的把变量存储在CPU的寄存器中,而不是放在寻址访问的内存中。但是由于CPU的寄存器个数有限等... 阅读全文
posted @ 2013-05-14 22:45 Windeal 阅读(398) 评论(0) 推荐(0)