#include #include #undef memset
void *
inhibit_loop_to_libcall
memset(void *dstpp, int c, size_t len)
/* write 8 `op_t' per iteration until less than 8 `op_t' remain. */
xlen = len / (opsiz * 8);
while (xlen > 0)
len %= opsiz * 8;
/* write 1 `op_t' per iteration until less than opsiz bytes remain. */
xlen = len / opsiz;
while (xlen > 0)
len %= opsiz;
}/* write the last few bytes. */
while (len > 0)
return dstpp;
}libc_hidden_builtin_def(memset)
其中部分定義
#define op_t unsigned long int
#define opsiz (sizeof(op_t))
typedef unsigned char byte;
考慮到效率的因素:
1、len < 8 的時候,按每次乙個位元組來讀寫。
2、len >= 8 的時候,32位機器按每次 4 個位元組來讀寫,64位機器按每次 8 個位元組來讀寫,連續做 8 次。剩下的接著按 每次 4 或 8 位元組讀寫, 每次 1 位元組讀寫。
疑問:假如在32位機器下,每次取得 dstp 的位址都是 4 的倍數嗎?怎麼才能取得 不是 4 倍數的位址?
openTLD 原始碼解讀
首先是run tld 在其次就是tldexample 最後到了初始化函式tldinit 第乙個比較關鍵的函式 bb scan 將影象網格化,將首先 scale 1.2.10 10 21 個規格 在每個規格上打網格 這個函式有乙個比較重要的方法 ntuples 就是重複 因為網格上的點很多點有相同的x...
thinkphp原始碼解讀
thinkphp原始碼解讀 thinkphp原始碼的根目錄下是 index.php,是系統預設的 主頁,index.php中首先檢測的是 php執行環境,如果php版本小於 5.3.0則退出執行,定義是否為除錯模式,定義應用目錄,引入入口檔案。thinkphp是整個框架的入口檔案,在thinkphp...
HashMap原始碼解讀
一 建立乙個hashmap都做了哪些工作?mapmap new hashmap hahmap無參構造方法 public hashmap 可以看到設定了載入因子 預設0.75 閾值 預設容量16 預設載入因子0.75 12 table是hashmap內部資料儲存結構entry陣列。當hashmap的s...