国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++小知識:不要去做編譯器的工作

2020-01-26 13:34:06
字體:
供稿:網(wǎng)友

對于C++編程的老鳥來說,有時候他們喜歡把一些東西按照編譯器的工作原理進行改寫,以便提高代碼的運行效率。這么做確實高明,也能體現(xiàn)出程序員的水平,但是這么做也是有風險的。因為有時候你可能會因為一些簡單的筆誤,而造成非常難以察覺的錯誤。本文就給出了類似的例子。

這個Bug 出現(xiàn)在MySQL源代碼中。

錯誤代碼:

static int rr_cmp(uchar *a,uchar *b){ if (a[0] != b[0])  return (int) a[0] - (int) b[0]; if (a[1] != b[1])  return (int) a[1] - (int) b[1]; if (a[2] != b[2])  return (int) a[2] - (int) b[2]; if (a[3] != b[3])  return (int) a[3] - (int) b[3]; if (a[4] != b[4])  return (int) a[4] - (int) b[4]; if (a[5] != b[5])  return (int) a[1] - (int) b[5];   <<<<==== if (a[6] != b[6])  return (int) a[6] - (int) b[6]; return (int) a[7] - (int) b[7];}

說明:

這是一個在對代碼段進行拷貝粘貼時出現(xiàn)的典型錯誤。程序員很可能是把“if (a[1] != b[1]) (int) a[1]

主站蜘蛛池模板: 秀山| 额尔古纳市| 平陆县| 利津县| 旅游| 无为县| 南华县| 深圳市| 德庆县| 衡南县| 顺平县| 大渡口区| 柞水县| 蒙城县| 西乡县| 怀安县| 广宗县| 太保市| 弥渡县| 莱阳市| 台南市| 佛山市| 吉木萨尔县| 云和县| 额尔古纳市| 东安县| 民和| 永城市| 思南县| 拜城县| 晋江市| 乐山市| 乌拉特前旗| 日照市| 九龙坡区| 沙洋县| 萨嘎县| 宁陵县| 天柱县| 兴山县| 宁远县|