數(shù)組越界真可怕,莫名就闖到了別人家
“悄悄是別離的笙簫,沉默是今晚的康橋。悄悄的我走了,正如我悄悄的來;我揮一揮衣袖,不帶走一片云彩?!鼻槭バ熘灸Φ倪@首《再別康橋》膾炙人口,當(dāng)年傳遍大江南北,撩動了無數(shù)少女的芳心。民國才女林徽因經(jīng)受住了徐志摩諸多情詩的狂轟濫炸,與梁家大公子思成君喜結(jié)連理,一對金童玉女完美結(jié)合,雙雙投身建筑事業(yè),為中國古建筑的保護(hù)和傳承留下了不可磨滅的功勛。
本文引用地址:http://butianyuan.cn/article/201811/395096.htm相較之下,頭頂民國四大美女之一光環(huán)的陸小曼就沒有那般矜持了,貪戀美色的志摩君在一股股不能自抑的荷爾蒙的沖擊下,將發(fā)妻、老父和家庭倫理置于腦后,將社會輿論、閑言碎語視若浮云,對國色天香的陸小曼狂轟亂炸,在那甜到心里、酥到骨里的情詩的幾番引逗之下,嫁做人婦的陸小曼出了軌,越了界,離了婚,和志摩君各取所需、“相親相愛”地結(jié)合在了一起。只是,“王子和公主并沒有永遠(yuǎn)幸福地生活在一起”,為了滿足陸小曼紙醉金迷、驕奢淫逸的生活,徐志摩拖著腎虧的身體四處走穴講課,一代才子竟最終死于空難,客死他鄉(xiāng)。
不知道,這是不是“青年導(dǎo)師”俞敏洪先生口中所謂的“女子墮落導(dǎo)致家庭墮落”的經(jīng)典案例呢?
看來,“越界”真的沒有好下場,破壞了兩個家庭不說,最終自己也搞到家破人亡。天圓地方、大道以常,不只是愛情、婚姻的“越界”會遭到天譴,搞嵌入式寫代碼的,遇到“數(shù)組越界”也會被搞得棲棲遑遑。
1
我一直覺得,程序員就是一個多疑到有些神經(jīng)兮兮的群體,每每出了bug,便懷疑起天,懷疑起地,懷疑起賴以生存的空氣。這不,天雷君又開始作了,對著一個bug,竟然無端地懷疑起1+1不等于2起來了。
照例,灑家先不惜筆墨,把這個bug放在實(shí)際應(yīng)用背景和程序中簡單描述一番。
筆者這款產(chǎn)品帶有遙控功能,接收到遙控器發(fā)送的遙控報文后,從中提取出相應(yīng)的命令數(shù)據(jù),根據(jù)命令執(zhí)行相關(guān)操作。程序的第一步就是接收遙控報文中的數(shù)據(jù)場中的數(shù)據(jù)位流,把這些數(shù)據(jù)位按照每八位組合成一個字節(jié)的方式,提取出字節(jié)形式的數(shù)據(jù)。
通過巧妙地設(shè)計遙控報文的格式,程序可以檢測出“報文數(shù)據(jù)場”的第一個數(shù)據(jù)位,然后依序?qū)⒚堪藗€數(shù)據(jù)位存儲到一個字節(jié)形式的數(shù)組成員中,統(tǒng)計到固定的數(shù)據(jù)位長度后,“報文數(shù)據(jù)場”檢測結(jié)束,之后便是對數(shù)據(jù)進(jìn)行解密、解析的事情了。
顯然,這里的數(shù)據(jù)位長度是8的倍數(shù),在這個遙控報文中,數(shù)據(jù)位的個數(shù)是288,數(shù)據(jù)長度為288/8=36個字節(jié),字節(jié)形式的數(shù)據(jù)數(shù)組定義為Rx_rawbit[36]。在程序里,數(shù)據(jù)位的長度以一個16位的變量Rf_bit_count表示,接收到一位數(shù)據(jù)位,將Rf_bit_count加一,Rf_bit_coun加到288,就說明接收完了所有的數(shù)據(jù)位。
上述Rx_rawbit數(shù)組成員為Rx_rawbit[0]- Rx_rawbit[35],數(shù)組下標(biāo)從0開始,數(shù)據(jù)位的一般表示方法為0-7位,顯然,第一個數(shù)據(jù)位存放在第0個字節(jié)的第0位,第二個數(shù)據(jù)位存放在第0個字節(jié)的第1位,。。。,第九個數(shù)據(jù)位存放在第1個字節(jié)的第0位,。。。,
以此類推,第n+1個數(shù)據(jù)位存放在第(n>>3)個字節(jié)的第(n & 0x07)位。
2
正經(jīng)八百的解釋到此基本結(jié)束,灑家不由得想起了《末代皇帝》里的經(jīng)典畫面,三歲的溥儀被接入皇宮,舉行登基大典,小宣統(tǒng)被烏壓壓的場面煩躁地不行,眼看著就要大哭起來,他的父親-當(dāng)時的攝政王不停地安慰他,‘快完了,快完了!’我想告訴各位看官的是,我的描述還差一點(diǎn)點(diǎn),‘快完了!’
還記得那個“把大象放進(jìn)冰箱分為幾步?”的經(jīng)典笑話嗎?做為一名優(yōu)秀的“嘮嗑鐘點(diǎn)工”,丹丹大媽給出的答案是兩步,第一步,打開冰箱,第二步,把大象放到冰箱里。雖說是典型的腦筋急轉(zhuǎn)彎,但是蘊(yùn)含著深刻的智慧。
灑家借花獻(xiàn)佛,也把這里存放數(shù)據(jù)位的操作分為兩步。
評論