C语言
yzx41099296
这个作者很懒,什么都没留下…
展开
-
结构体最后的长度为0或1数组的作用(转载)
其实很早在看LINUX下就看到这个东西,后来在MFC内存池里同样也看到了类似的东西,还依照MFC写过一个类似的小内存池,(MFC用的是return this + 1)后来在李先静的《系统程序员成长计划》里看到了类似的定义,于是心里想着总结一下,结果发现网上已经有牛人总结的很好了,于是乎就转了过来,谢谢你们的分享,这是我前进的动力!同时,需要引起注意的:ISO/IEC 9899-1999里面转载 2012-06-18 15:12:13 · 460 阅读 · 0 评论 -
float数据的内存表示
将-0.15625表示成机器内的32个字节的形式. 第一步:将-0.15625表示成二进制形式: (-0.15625)(十进制数)=(-0.00101)(二进制形式); 第二步:将二进制形式的浮点数转化为规格化的形式:(小数点向右移动3个二进制位可以得到) -0.00101=-1.01*2^(-3) 同样,产生了三项:符号位:该数为负数,故第31位为1,占一个二进制原创 2012-09-20 22:15:56 · 581 阅读 · 0 评论 -
memcpy
memcpy() -- 拷贝内存内容相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()表头文件: #include 定义函数: void *memcpy(void *dest, const void *src, size_t n)函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指转载 2012-07-12 17:17:44 · 371 阅读 · 0 评论 -
Quick Sort
int quicksort(int a[],int low,int high){ int temp=a[low]; while(low { while(temp a[low]=a[high]; while(temp>=a[low]&&low a[high]=a[l原创 2012-07-10 21:26:32 · 325 阅读 · 0 评论 -
堆排序算法
精通八大排序算法系列:二、堆排序算法 作者:July 、二零一一年二月二十日本文参考:Introduction To Algorithms,second edition。------------------- 此精通排序算法系列,前一节,已讲过了一、快速排序算法,其中,快速排序每一趟比较用时O(n),要进行lgn次比较,才最终完成整个排序。所以快排的复杂度才转载 2012-06-29 15:59:01 · 766 阅读 · 0 评论 -
字符串的“无重复”全排列递归算法
#include int n = 0;void swap(char *a, char *b) { char m; m = *a; *a = *b; *b = m;}void perm(char list[], int k, int m) { int i; if (k == m) { printf("转载 2012-07-09 15:02:49 · 690 阅读 · 0 评论 -
Linux多线程Pthread学习小结
简介POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程.该标准定义内部API创建和操纵线程. 作用线程库实行了POSIX线程标准通常称为pthreads.pthreads是最常用的POSIX系统如Linux和Unix,而微软Windowsimplementations同时存在.举例来说,pthreads-w32可支持MIDP的pt转载 2012-06-25 22:42:29 · 682 阅读 · 0 评论 -
堆排序算法的实现
最小堆:#include #include void minheap(int a[],int i,int len){ int l,r,small,t; l=2*i; r=2*i+1; if(la[l-1]) { small=l; } else { sm原创 2012-06-29 15:59:40 · 377 阅读 · 0 评论 -
函数参数传递整形数组时,必须要以数组长度作参数。
/以下是我写的c++程序。/函数f()的功能是去掉一个最大值和最小值后求平均值。//跳水打分#includeusing namespace std;void f(double a[]); //参数是数组类型//int main(){ double a[]={7.9,8.6,9.0,7.3,6.9,8.6,8.7,7.8,9.0}; f(a);转载 2012-07-06 11:43:58 · 4750 阅读 · 1 评论 -
C语言程序的内存布局(2)
13.3 可执行程序的连接13.3.1 可执行程序的组成上一节分析了C语言应用程序中各段的情况,实际的C语言可执行程序,将由各个文件经过连接生成。目标文件是由每一个C语言源程序(*.c)经过编译器生成,目标文件(.o)的主要组成部分即代码段、只读数据段和读写数据段三个段。未初始化数据段、堆和栈不会占用目标文件的空间。可执行程序是由各个目标文件经过连接而成。其主体部分依然转载 2012-06-19 21:45:34 · 515 阅读 · 0 评论 -
C语言程序的内存布局(1)
本章介绍C语言程序的内存布局结构,包括连接过程中目标程序各个段的组成和运行过程中各个段加载的情况。在本章的学习中,读者应重点关注以下内容:C语言程序在内存中各个段的组成C语言程序连接过程中的特性和常见错误C语言程序的运行方式13.1 C语言程序的存储区域由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程转载 2012-06-19 21:44:48 · 512 阅读 · 0 评论 -
C语言程序的内存布局3
C语言程序的内存布局一:C语言程序的存储区域 C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域: 1.代码段(Code or Text): 代码段由程序中的机器码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向转载 2012-06-19 21:46:08 · 387 阅读 · 0 评论 -
pthread_detach,pthread_cleanup_push,pthread_cleanup_pop
pthread_detach:就是当线程正常结束的时候会自动释放资源。一个线程或者是可汇合的(joinable,缺省值),或者是脱离的(detached)。当一个可汇合的线程终止时,它的线程ID和退出状态将留到另一个线程对它调用pthread_join。脱离线程却象守护进程:当它们终止的时,所有相关资源都被释放,我们不能等待它们终止。如果一个线程需要知道另一个线程什么时候终止,原创 2012-10-17 16:56:10 · 698 阅读 · 0 评论