Category Archives: 同文算指

程式語言

screen下快速切換encoding的方法

screen不用講是啥了吧,用了十幾年了,就是好用

不過自從進了utf8時代,screen就一直有兩行bind key的指令:
bind b encoding big5 utf8
bind u encoding utf8 utf8

老實說這樣不是很方便,因為其實開BBS或某些Big5程式,固定的動作就是要先c-a c, c-a b
當初希望說能bind一個key是可以直接create big5 or utf8 window,結果找不到這功能,也就不了了之了。
Continue reading screen下快速切換encoding的方法

FM RDS

RDS(Radio Data System)是利用FM副載波頻率傳送一些資料和控制命令的規格,在美國叫做RBDS(Radio Broadcast Data System)。在歐美基本上這算是電台的標準配備,不過國內因為法令沒有規定的關係,所以大多的電台都沒有,一直到台灣開始有TMC服務,才有電台支援RDS。
Continue reading FM RDS

MFC程式和Windows PE 2.0的相容性問題

之前同事遇到一個問題,本來在各版本(2K/XP/Vista 32&64bit, and XP PE)上跑得好好的應用程式,到了Windows PE 2.0(based on Vista)上,按下enter就直接跳回提示符號,什麼錯誤訊息都沒有。

這問題Assign到我身上,由於這並不是我的project,對MFC程式不熟,更別提PE,摸不清楚頭緒的情形下,花了一整個星期的時間才找到問題所在。
Continue reading MFC程式和Windows PE 2.0的相容性問題

array和pointer

從學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’。說實在這種東西有趣歸有趣,還滿令人困擾的,所以還是別用吧。