二月 18th, 2008 at 13:57 (同文算指)
之前同事遇到一個問題,本來在各版本(2K/XP/Vista 32&64bit, and XP PE)上跑得好好的應用程式,到了Windows PE 2.0(based on Vista)上,按下enter就直接跳回提示符號,什麼錯誤訊息都沒有。
這問題Assign到我身上,由於這並不是我的project,對MFC程式不熟,更別提PE,摸不清楚頭緒的情形下,花了一整個星期的時間才找到問題所在。
閱讀『MFC程式和Windows PE 2.0的相容性問題』全文 »
迴響
一月 9th, 2007 at 13:34 (同文算指)
從學C開始就曉得array和pointer可以說是一體的兩面,我也一直把array name當成一個不可修改的pointer。
所以我們也常常array == &array[0],array+2 == &array[2]這樣換著用。但是上次朋友拿了一份看起來覺得有問題的程式碼。他是&array和&array[i]這樣混著用。
&array直覺會覺得這不是變成指標的指標?但是實際上程式是ok的。於是拿Visual C++實際寫sample trace看看,發現int array[]的話,array和&array的值是會一樣的。也就是說這是array和pointer不同的一個重大特性。問了認識的人很少人知道,可能沒真正K過C spec的人也很少會曉得。
不過這種寫法(&array)在The C Programming Language並沒有提到,K&R也只用’array’。說實在這種東西有趣歸有趣,還滿令人困擾的,所以還是別用吧。
4 則迴響