免費電子書:高等 C 語言 -- (專業限定版)

高等 C 語言

簡介

字串

指標與陣列

函數

結構

物件導向

記憶體

檔案

錯誤處理

巨集處理

C 與組合語言

資料結構

動態字串

動態陣列

鏈結串列

雜湊表

開發環境

Make

Cygwin

MinGW

DevC++

wxDevC++

編譯器

gcc 編譯器

TinyCC 編譯器

LCC 編譯器

應用主題

CGI 程式

GNU 程式

視窗程式

影像處理

練習題

訊息

相關網站

參考文獻

最新修改

簡體版

English

  • 目錄 — (Directory)
  • 簡介 — (Introduction)
    • 前言 — 寫給專業人士看的 C 語言的書,初學者請勿閱讀。
    • 高等 C 語言 — C 語言是許多作業系統與嵌入式系統的共同語言,其威力也正在系統程式上。
    • C 語言的歷史 — Ken Thompson & Dennis M. Ritchie 發明的 C 語言,至今已超過 40 年。
  • 字串 (String)
    • 字串大小的問題 — (String Size) 如何決定字串的大小,防止緩衝區溢位。
    • 字串的格式化 — (format) printf 與 scanf 都用到的 format 字串,這是 C 語言字串輸出入的核心。
    • sprintf 函數 — sprintf 是很好用的格式化工具。
    • sscanf 函數 — sscanf 是很好用的字串剖析工具,並且支援類似 Regular Expression 的功能。
    • 標準字串函式庫 — (String Library) 標準 C 語言的字串大都是靜態函數,也就是不會在函數中分配新的記憶體。
    • 字串的誤用 — (String Misuse) 無法決定長度的字串,請不要用標準函式庫,要改用動態字串。
    • 動態字串物件 — (Dynamic String) 可以動態增長的字串物件,讓您不用再為字串長度傷腦筋。
    • 寬字串函數 — 寬字串的處理,在 C 語言中,通常寬字串指的是 Unicode (但不限定於 Unicode)。
    • 寬窄字串間的轉換 — 將 Unicode 轉為一般字串,或將一般字串轉為 Unicode。
  • 指標與陣列 — (Pointer & Array)
    • 指標算術 — (Pointer Arithmetics) 指標的加減法,很容易會造成錯誤。
    • 動態陣列物件 — (Dynamic Array) 利用動態陣列,您就不用再為陣列大小傷腦筋了。
    • 陣列大小的問題 — (Array Size) 如何決定陣列的大小呢?這是一個惱人的問題。
  • 函數 — (function)
    • 函數指標 — (function pointer) 函式指標是 C 語言當中威力強大的工具,專業人士必定會善用之。
    • 函數指標型態 — (function pointer type) 用 typedef 將函數指標宣告成一種型態。
    • 變動參數 — (va_arg, va_list) 變動個數參數,也就是使用 … 宣告的參數,要如何使用呢?
  • 物件導向 — (OO)
    • C 與物件導向 — (Object-Oriented) 物件導向的基本概念。
    • 封裝 — (Encapsulation) 使用 C 的結構實作封裝,將資料與函數封裝成物件。
    • 繼承 — (Inheritance) 實作繼承,讓子類別具有父類別的欄位。
    • 多型 — (Polymorphism) 實作多型,讓同一個指令可以執行不同物件中的函數。
    • 類別結構 — (Define Class) 將類別結構獨立出來,以便節省記憶體。
  • 檔案 — (File)
    • 檔案緩衝區 — 如何指定緩衝區大小與位址。
    • 臨時暫存檔 — 如何建立暫存檔案。
    • 檔案錯誤 — 如何處理檔案的錯誤狀況。
    • 目錄管理 — 建立目錄、切換路徑、取得目前路徑。
    • 來自 jserv 的建議 — 這整章節沒有把 C 語言的溫床 — UNIX 背後的思維闡述好,希望能多談 standard I/O file,descriptors 的概念,以及 C standard library 提供哪些包裝,這樣探討 buffering 才有意思。
  • 錯誤處理 — (Error Handling)
    • 錯誤代號與訊息 — (errno, strerror, perror) 與錯誤代號相關的訊息輸出方法。
    • 錯誤訊息列表 — (strerror) 用 strerror 列出所有內建的錯誤訊息。
    • 檔案錯誤 — (ferror,clearerr) 檔案讀取寫入錯誤,清除錯誤,繼續執行下去。
    • 短程跳躍 — (goto) 函數內的跳躍,不可跨越函數。
    • 長程跳躍 — (setjump 與 longjump) 在錯誤發生時,儲存行程狀態,執行特定程式的方法。
    • 訊號機制 — (signal) 攔截中斷訊號的處理機制。
    • 模擬 try ... catch — 使用跳躍機制 (setjump, longjump) 模擬 try … catch 的錯誤捕捉機制。

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License