前情提要:本系列文章皆使用 GCC 編譯器,在 Linux 作業系統可直接用套件管理工具安裝;使用 macOS 者可參考此連結安裝命令列工具取得;使用 Wind...
在第一天的文章中,我們提到 C 語言要從程式碼變成電腦可以執行的機器碼,得經過四個步驟,而這當中的第一步就是「預處理(preprocess)」。 預處理發生在編...
如果要定義一個「指向結構 struct s 的指標」,可以怎麼寫? Day 2 的文章有講過用巨集的寫法: #define dPS struct s * 這行...
在第二天的文章中,我們提到巨集可以定義函數,但為何不用一般的函數宣告就好,還要用巨集定義函數? 使用巨集定義函數的好處 用巨集定義函數的好處是函數會直接在呼叫處...
這篇文章的主題是 static 這個關鍵字,而 static 可以搭配變數或函數使用。 靜態變數 Static Variable 首先來看把 static 用在...
const 跟 literal 的值都不能被改變,看似功能相同,但其本質上的意義還是有落差,我們可以從賦值符號 = 切分為左右邊來認識兩者。 const con...
試分析以下程式碼,並推估其運算結果: int a = 5, b = 7, c; c = a+++b; 等等,這 a+++b 是什麼東西?不會報錯嗎? 最大匹配...
試分析下列程式碼: #include <iostream> int main() { unsigned int a = 6; in...
學 C 或 C++ 之類會處理記憶體位址的程式語言,最令人害怕的莫過於「指標」,現在就讓我們深吸一口氣、準備好清晰的頭腦與十足的耐心,來好好面對這萬惡的指標。...
如果給定一個值如 0x67a9,這到底是「指標」還是「(十六進制的)整數」型別呢? 答案是兩種都有可能,而且兩型別之間可以互相轉換,本篇文章就來細細探討這是怎麼...