目前日期文章:201108 (11)

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

上篇文章 中,已概述如何進行 trace,第四步驟提到的是「不進入函式」方式執行,

但實際上還有另一「逐步執行」選項,本文簡略說明其差異。

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

一堆人都說,擅用 IDE,逐步執行,追蹤結果,我也常和 Visual C++ 使用者這麼說。

有時問別人「會不會 Trace」,得到的答案是「會 Trace」,事實似乎並非如此,

edisonx 發表在 痞客邦 PIXNET 留言(3) 人氣()

1. assert 函式

一般在做 trace 時,似乎比較少人用到 assert,assert 裡面放的判斷是,如果「不成立的話」,程式便不會繼續執行下去。以下述程式碼而言

edisonx 發表在 痞客邦 PIXNET 留言(3) 人氣()

要效率好的話,就別自己造輪子,調用現有的就好,以下程式碼供學習參考。

 

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

對 C 語言新手 FAQ 裡面,應建議學習 sprintf 與 sscanf 之學習與使用。這兩支與 printf、scanf 極為相似,只是 printf、scanf 是從標準輸出入做 輸出、輸入動作。而 sprintf 與 sscanf 只是將目的改為字串而已。

舉個常見的例子,要產生 1.txt ~ 100.txt 之字串,該如何產生?

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

#define SET_BIT(x, n) ( (x) |= (1<< (n)) )
#define CLR_BIT(x, n) ( (x) &= (~(1<< (n))))
#define CHK_BIT(x, n) ( ((x) & (1<< (n)))!=0 )
#define FLIP_BIT(x, n) ( (x) ^= (1<< (n)) )

void show_binary(unsigned x)
{
    int i;
    unsigned mask=0xf0000000;
    char *table[] = {
        "0000","0001","0010","0011","0100","0101","0110","0111",
        "1000","1001","1010","1011","1100","1101","1110","1111"
    };
    for(i=7; i>=0; --i, mask>>=4)
        printf("%s", table[ (x&mask) >> (i*4) ]);
    puts("");
}

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

在一些場合中,會針對較特別格式之資料做處理,最後往往都是在字串那裡轉來轉去。

比較穩固的做法,大概是用 fgets 一行一行抓下來後,對該字串做分析,

edisonx 發表在 痞客邦 PIXNET 留言(4) 人氣()

writing Efficient C and C Code Optimization

Optimizing C and C++ Code 

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

亂數有些議題特別拉出來再次討論,不熟的話 可看這篇

1.  [low, up]

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

最近看了二篇 blog 都覺得還蠻喜歡的

[智慧財產權] 著作權 與 專利權 對程式開發者的應用

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

C++ 請擅用 vector。

 

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

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

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

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

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

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼