2010年12月1日 星期三

[Linux] sizeof 小心用

最近在處理driver 效率問題,要很在乎每個宣告實際的大小,還有type的大小

sizeof 就常常用,還好arm 板子上跟pc 的沒差太多...
但!!!   還是得小心用阿  囧>

以下是用sizeof 在系統上求出
--
首先
int 是 4 bytes (32bits)
char 是 1

--
常常用sizeof 不只求位元大小還可以用來求長度
筆記幾個要小心的地方:

char *str = "0123456789"

sizeof(str) ==>4
sizeof(*str) ==> 1
<<不要對指標亂來取來這招 囧!!!>>

char str[] = "0123456789"
sizeof(str) ==>11個(\0)
sizeof(*str) ==> 1
但是
char str[100] = "0123456789"
sizeof(str) ==>100
<<亂來沒好處阿!!! 那可不是字串大小!!!>>

int value[100];
value[0] = 10;
sizeof(value) ==>400 (4*100)
因為char 是1 int 是4

---
所以sizeof 是用來算記憶體大小,在complier時期就會知道的數字,要找長度
還是乖乖用strlen()唷~~~


那個... 執行期間的sizeof是邪魔歪道(誤

[Linux] vim 加速上班的心情

Vim 有多好用就不用說了,(其實也沒多好用,就編輯器而已 = =)

記錄一下。
以下操作都在

編輯 /etc/vim/vimrc

  • 讓你的vim 看得懂C 語言的特徵!!!
syntax on

  • 每次開啟檔案都會自動跳到上一次停留的地方(這太重要了~讓你工作馬上回神)

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

  • 讓找的字便亮一點啊
set hlsearch

  • 自訂熱鍵
(F8 high line 用,F9 開function 用)
map <F8> :set hls!<BAR>set hls?<CR>
map <f9> :Tlist<CR>

  • 打開滑鼠支援(我還沒適應用滑鼠 囧>)
set mouse=a

a: 全部模式都可以用滑鼠
v: Visual mode
n: Normal mode
i: insert mode

其他模式就不列了。
不用a的話可以用
set mouse=vn
把各種模式串起來