公告版位
從小害怕寫作文, 文筆不佳到現在, 還請各位讀者大大:
1. 發現有錯誤, 請留言告知. (或者你 '覺得' 不對也行)
2. 用字措辭不當, 請留言告知.
3. 有看沒有懂? 幫到忙也好, 幫倒忙也罷, 總之留個言吧.

目前日期文章:201506 (8)

瀏覽方式: 標題列表 簡短摘要

如果你覺得廣告很煩...

你有注意到了嗎? 我的部落格沒廣告.

如何移除本文下方的廣告



請選擇 '側邊欄位設定', 進入 '頁尾描述' 的 '設定', 並貼上以下的 javascript, 並選擇 '開啟'.

文章標籤

MagicJackTing 發表在 痞客邦 留言(17) 人氣()

個人覺得 C 語言最神奇的地方是有好些個對等寫法

類型 相關運算子 寫法一 寫法二 說明/宣告
1. (變數)取址 "&" p &x p 為指標, 並指向變數 x
2. (指標)取值 "*" *p x 同上
3. 陣列與指標 "[]" and "*" p[n] *(p+n) p 為陣列變數或者指標變數
4. 結構成員 "->" and "." p->x (*p).x p 為指標, 並指向一結構
x 為該結構成員
文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

C 語言預設會幫我們作一些型別轉換的動作, 一般的型別轉換不只會更換資料型別, 更會使資料內容有所變動, 例如:

    float   fVar = 1.2;
    int32_t iVar;

    iVar = fVar;    // iVar 值為整數 1

但是萬一我們不想要這個預設的換轉, 只是想要把 fVar 的數值 (以 float 格式) 存放在變數 iVar 所佔用的記憶體中, 而又不想動用 union 設定呢? (因為使用 union 程式或多或少都需要修改, 萬一 compiler 不支援 Unnamed Structure and Union Fields (或者 Anonymous unions, C11 的功能), 則需要更動的幅度就會更大.)

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

'型別轉換': 基本上就只是在變數/函數前面加一對小括號, 中間填入要轉成什麼型別, 像這個樣子 "(型別)", 例如:
(unsigned char *)ptr
看不出哪一點難, 對吧

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

這個已經很多人寫過了, 不過我還是要記一下自己試的心得.

網站上查到的 99% 都說把 script 貼在 "側邊欄位設定-->頁尾描述". 其實這種作法會產生一個問題: 就是往後人家看你的部落格時, "每一篇" 都會去拉一次 SyntaxHighLighter 的 script. 可是又不是每一頁都有程式碼, 都需要用到 SyntaxHighLighter.

後來想到應該可以把它嵌在需要用到的貼文中就好了啊!

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

本文來自網站 ieng9.ucsd.edu (http://ieng9.ucsd.edu/~cs30x/rt_lt.rule.html) 加以重新排版.

呃... 它搬家了, 新網址如後: cseweb.ucsd.edu (http://cseweb.ucsd.edu/~ricko/rt_lt.rule.html)

文章標籤

MagicJackTing 發表在 痞客邦 留言(2) 人氣()

在系統在整合或移值時最常用的就是以巨集來置換一些底層 function. 這類的技巧叫 wrapper (意思是包裝紙)

但是在面對像 printf() 或者 scanf() 之類參數個數可變 (或稱不具名參數) 的函數, 就出現只能更換函數名稱, 而無法增減參數個數的冏境, 例如:

// 下例 OK, 但是無法處理參數的異動
#define printf             my_printf

// 下例 OK, 但是只能處理剛好二個參數的異動 (增加, 交換)
#define printf(a, b)       my_printf(x, b, a)

// 下例 ERR, C 編譯器的 preprocessor 不認識 ...
#define printf(a, b, ...)  my_printf(x, a, b, ...)
文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

#include <stdarg.h>

int my_function(int cnt, char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    ...
    x = va_arg(ap, int);    // 取得一個整數變數
    ...
    *va_arg(ap, long *) = y;    // 把一個長整數指標變數塞回去
    ...
    va_end(ap);
    ...
    return ret_value;
}

int main(void)
{
    ...
    my_function(12, "abc", 6, 7, 8);
    ...
}

說明:

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼