c
文章平均质量分 85
chrysanthemumcao
这个作者很懒,什么都没留下…
展开
-
C语言区间随机数生成 with srand() & rand() & time()
转载自在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看中的这两个函数的伪随机数生成吧~~~1. 生成[a,b]之间的一个实数和一个整数[cpp] view plaincopy/* 定义函数 int rand(void); 函数说明 rand()会返回转载 2012-10-31 08:46:49 · 917 阅读 · 0 评论 -
GCC __attribute__((constructor)|(destructor))
__attribute__((constructor)) __attribute__((destructor))转载 2014-09-20 15:00:41 · 729 阅读 · 0 评论 -
c语言相关问题记录
1.c语言中有默认最大的int类型的整数,该宏为INT_MAX.原创 2014-09-06 09:40:17 · 439 阅读 · 0 评论 -
先序和后序构造二叉树,后序和中序构造二叉树
下面是代码。原创 2014-07-25 15:47:17 · 1412 阅读 · 0 评论 -
c 函数,计算绝对值而不需要使用条件分支
static inline int abs(int ecx){int ebx = ecx;ecx = ecx >> 31;ebx = ebx ^ ecx;ebx -= ecx;return ebx;}Listing 4. C Function to compute abs without conditional branches转载 2013-09-22 10:14:18 · 905 阅读 · 0 评论 -
malloc()/free()的实现
malloc()/free()的实现目录brk()/sbrk()C 风格的内存分配程序一个简单的分配程序参考malloc()/free()是C语言标准库中的内存分配函数。C标准库中与内存分配相关的函数还有:#include void *malloc(size_t size);void *calloc(size_t nobj, size_t size)转载 2013-09-09 20:43:19 · 3288 阅读 · 1 评论 -
__builtin_prefetch()
__builtin_prefetch() 是 gcc 的一个内置函数。它通过对数据手工预取的方法,减少了读取延迟,从而提高了性能,但该函数也需要 CPU 的支持。该函数的原型为:void __builtin_prefetch (const void *addr, ...)其中参数 addr 是个内存指针,它指向要预取的数据,我们人工需要判定这些数据是很快能访问到的,或者说是转载 2013-05-09 20:54:23 · 6624 阅读 · 0 评论 -
c语言宏定义
c语言宏定义有如下两种:1.#ifdef XXXX#else#endif2.#if defined(XXXX)#elif defined(XXX)#elif defined(XXX)#endidf后者可以用来控制多重选择.转载 2013-05-07 21:48:47 · 557 阅读 · 0 评论 -
volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即转载 2013-05-02 21:24:40 · 431 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2013-05-01 20:59:17 · 424 阅读 · 0 评论 -
extern C
第2章 从C到C++,需要做出一些改变C++语言之父当初设计该语言的初衷是“a better C”,所以C++一般被认为是C的超集合,但是不要因此而误以为,“这意味着C++兼容C语言的所有东西”。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点,大部分的C代码可以很轻易地在C++中正确编译,但仍有少数差异,导致某些有效的C代码在C++中无法通过编译。因此,从C到C++,转载 2013-03-27 10:07:46 · 592 阅读 · 0 评论 -
__builtin_expect详解
转载自:http://hi.baidu.com/uu_dou/item/e9f6f41d570d817b7a5f25c7在GTK+2.0源码中有很多这样的宏:G_LIKELY和G_UNLIKELY。比如下面这段代码:if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ {转载 2013-03-30 19:25:56 · 452 阅读 · 0 评论 -
内存字节对齐
为什么会有内存对齐以下内容节选自《Intel Architecture 32 Manual》。字,双字,和四字在自然边界上不需要在内存中对齐。(对字,双字,和四字来说,自然边界分别是偶数地址,可以被4整除的地址,和可以被8整除的地址。)无论如何,为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐转载 2013-03-28 22:51:20 · 571 阅读 · 0 评论 -
实例分析用指针访问二维数组的几种方法
实例分析用指针访问二维数组的几种方法 之前对数组的概念一直没有理解透彻,只觉得数组名就是个常量指针而已,用法和基本的指针差不多。所以当我尝试用二级指针去访问二维数组时,就经常会出错。下面就是刚开始写的一个错误的程序:#include int main(){ int iArray[2][3] = {{1,2,3},{4,5,6}转载 2012-11-26 11:24:03 · 580 阅读 · 0 评论 -
c++和c中的函数相互调用
c++中的文件调用c文件中的函数1. c++文件中的函数调用c文件中的函数。2.c文件中的函数调用c++文件中的函数。原创 2014-10-19 19:10:37 · 784 阅读 · 0 评论