常見而又隱秘的比較函式 BUG

2021-07-03 17:55:55 字數 627 閱讀 8152

// returns 0 if a == b, a negative number if a < b or a positive otherwise.

int cmp(const void *a, const void*b)

這是乙個非常常見地使用在 qsort 等排序裡的比較函式,然後這個函式本身卻是存在 bug 的 —— 溢位的危險。

failure test case:

int a = int_min, b = 1;  // int_min defined in limits.h

int result = cmp(&a, &b); // result = int_max, 這顯然與 a < b 的事實不符合。

那麼正確的寫法是怎樣的呢:

// returns 0 if a <= b, or non-zero value otherwise.

int cmp(const void *a, const void*b)

據說《程式設計實踐》一書有提到,另此書評價甚高,有空可以拜讀一下。

WinRT常見而又困擾的問題

1.popup content中的繫結都會失效,之前在stack overflow上看到過類似的問題,自己在開發中也遇到了,始終沒找到原因。解決方案是將原本popup的content全都移到中 2.當你滑鼠點選在text之外的空白處,無背景色的控制項單擊事件會失效,這種情況經常發生在自己寫的temp...

HTML常見的BUG 了解

雙倍浮向 如果乙個元素新增float left並且有margin left 在ie6中顯示兩倍的margin值 hack 給元素新增display inline 預設大小 讓元素高度保持乙個最小的高度16px左右。hack 用font size 0 或者是overflow hidden 網頁中按鈕元...

常見HTML標籤的bug

在說bug前,我們先簡單了解一下html的標籤。對於剛入門前端的朋友而言,首先我們接觸到的肯定會是標籤以及標籤的巢狀。當然,bug這種東西我們都會考慮到版本問題,如果不考慮版本,那就有點耍流氓了,說不定什麼時候它就被修復了呢。我這裡用的是目前而言的高版本谷歌瀏覽器測試的。現在由於移動端 也就是手機 ...