
c
jj_jameholl
这个作者很懒,什么都没留下…
展开
-
php源码之array_key_exists
先定一个flag,以后争取每天理解一个php函数源码,熟悉php内核。函数array_key_exists等数组相关的函数都定义在源码ext/standard/array.c文件中。array_key_exists函数的作用是检测给定数组array中是否有键为key的值。源码如下:PHP_FUNCTION(array_key_exists){ zval *key; /* key to ...原创 2018-03-08 22:02:20 · 1282 阅读 · 0 评论 -
va_start和va_end的使用及原理
本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(...);void foo(parm_lis...转载 2018-02-23 17:31:36 · 204 阅读 · 0 评论 -
揭开C语言指针的面纱-part1
1.操作系统是以字节为单位,而指针实际上就是指向这个字节单位,指针变量的值即是这个字节在计算机系统中的地址。一个指针大小跟cpu位数有关,64位的mac中,一个指针有8字节,也就是能表达的存储地址范围为2的64次方。2.指针变量中存储的数字就是一个字节的地址,然而一般数据结构大小都大于1个字节,比如int类型是4个字节,double是8个字节,一个结构体应该也算一个数据类型。指针存的字原创 2018-01-14 17:31:30 · 216 阅读 · 0 评论 -
php7-hashtable总结
hashtable 结构typedef struct _Hashtable { unit32_t nTableSize //最小为8,标准为大于实际元素个数的2次方,6->8,9->16 unit32_t nTableMask; //tablesize-1 unit32_t nNumUsed; //已使用的元素,当满了的时候会重构,去除已经unset的元素原创 2017-10-24 07:58:58 · 379 阅读 · 0 评论