原创 carpe diem,memento mori!

看到同事的msn簽名是這個,不好意思問就在網上查了下,在維基百科上有,原來這個carpe diem是個短語,"seize the day and place no trust in tomorrow"。

原创 what happened?

剛寫好的一大篇,點了個發表之後回到了編輯的空白頁面,然後寫的東西就全沒了,55555~~~@#$%$#%#@^#%^!$#@!!

原创 13.7 其他標準I/O函數

int ungetc(int c, FILE *fp) 將c指定的字符放回輸入流中。 int fflush(FILE *fp) 將緩衝區中任何未寫的數據發送到一個由fp指定的輸出文件中去。這個過程成爲刷新緩衝區。如果fp是一個空指針,則刷

原创 存儲類和函數

函數也具有存儲類。 函數可以是外部的(默認情況下)、靜態的,還有內聯函數。 函數前面加個static修飾,就是靜態的。只可以在定義它的文件中使用。 通常使用關鍵字extern來聲明在其他文件中定義的函數。這一習慣用法主要是爲了使程序更清晰

原创 strtol()函數

/************************************************************* c primer plus P315 11.29 ---嘗試使用strtol()函數 *************

原创 存儲類 (作用域、鏈接和存儲時期)

作用域 :程序中可以訪問一個標識符 的一個或多個區域。一個C變量的作用域可以是代碼塊作用域 、函數原型作用域 或者文件作用域 。     一個代碼塊是包含在開始花括號和相應的結束花括號之內的一段代碼。在代碼塊中定義的變量具有代碼塊作用域

原创 MVC模式and so on

key:         os:進程調度,內存管理,驅動,文件系統,網絡         IPC         windows中的內容保護,虛存         bootloader,開發板帶兩個bootloader。uboot   

原创 fgets()函數從文件中讀數據

這是c primer plus第11章的內容。第五版中文版p293。 fgets需要三個參數,第一個是讀取的數據要存放的指針,第二個是允許讀取的最大字節數,第三個是從哪裏讀取。課本上的例子是從終端輸入,此時第三個參數寫成stdin。 但是

原创 指針和數組等價 的意思

    char c[10];     //scanf("%s",&c);     scanf("%s",c);      這兩句話的作用一樣,哪句都對,且結果一樣。      因爲數組名做參數時會退化成指針。數組名就是首地址。 那麼,

原创 字符串輸入總結

gets():遇到換行字符(/n,回車)認爲輸入結束,換行符之前(不包括換行符)的所有字符讀入,在這些字符後添加一個空字符(/0)。它將讀取換行符並將其丟棄。 這裏若定義的數組比輸入的數據的長度小,這些輸入的數據會覆蓋內存的別的地方。 爲

原创 memwatch使用筆記

memwatch是一個用於c和c++的內存泄漏檢測工具,因爲我還不知道的原因,在c++裏不是很好用,但是在c是絕對可用的。memwatch從網上下下來的壓縮包中,主要就是兩個源文件:memwatch.h和memwatch.c,這也是爲什麼

原创 存儲類說明符 auto register static extern typedef

auto表明一個變量具有自動存儲時期。 register只能用於具有代碼塊作用域的變量。 static: 當用於具有代碼塊作用域的變量的聲明時,使該變量具有靜態存儲時期,從而得以在程序運行期間存在並保留其值。 變量仍具有代碼塊作用域和空鏈

原创 14 章 結構和其它數據形式

結構聲明: 例: struct book {     char title[MAXTITL];     char author[MAXAUTL];     float value; }; 使用: struct book library;

原创 ANSI C的類型限定詞

一個變量是以它的類型和存儲類表徵的。C90增加了兩個屬性:不變性和易變性。這些屬性是通過關鍵字const和volatile聲明的。 const :不能通過賦值、增量或減量計算來修改該變量的值。然而,可以初始化一個const變量。 在函數定

原创 內存分配,malloc()和free()

c primer plus P340 爲了在程序運行時分配內存。 在頭文件stdlib.c中有malloc()和free()的原型。 malloc()接受一個參數:所需內存字節數,然後malloc()找到可用內存中一個大小適合的塊,返回那