C语言接口与实现(CII)
杰Tang_fighting
这个作者很懒,什么都没留下…
展开
-
可变参数va_start,va_arg,va_end
一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的 C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_li转载 2014-08-01 19:39:11 · 560 阅读 · 0 评论 -
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的转载 2014-07-31 10:35:49 · 412 阅读 · 0 评论 -
CII-div和mod
C语言标准强调,如果x / y是可以表示的,那么(x / y) * y + x % y 必须等于x。dangyige原创 2014-07-29 16:54:40 · 701 阅读 · 0 评论 -
CII-原子
#ifndef ATOM_INCLUDED#define ATOM_INCLUDEDextern int Atom_length(const char *str);extern const char *Atom_new(const char *str, int len);extern const char *Atom_string(const char *str);extern con原创 2014-07-30 21:45:39 · 769 阅读 · 0 评论 -
CII-2.4指针常量和常量指针
#define T Stack_Ttypedef struct T *T;struct T { int count; struct elem { void *x; struct elem *link; } *head;}const T stk //指针常量, const修饰struct T *。地址不能变。 const struct T *stk //指向常量的指原创 2014-07-30 17:43:24 · 596 阅读 · 0 评论