iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
自我挑戰組

韌體工程師的不只 0x10 個問題 系列

從知名文章「韌體工程師的0x10個問題」延伸,講述三十個跟韌體工程師、C、C++ 相關的概念。

參賽天數 21 天 | 共 21 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1-C 語言從原始碼到執行檔過程

前情提要:本系列文章皆使用 GCC 編譯器,在 Linux 作業系統可直接用套件管理工具安裝;使用 macOS 者可參考此連結安裝命令列工具取得;使用 Wind...

2026-08-01 ‧ 由 ralphhong5465 分享
DAY 2

Day 2-C 語言的預處理器

在第一天的文章中,我們提到 C 語言要從程式碼變成電腦可以執行的機器碼,得經過四個步驟,而這當中的第一步就是「預處理(preprocess)」。 預處理發生在編...

2026-08-02 ‧ 由 ralphhong5465 分享
DAY 3

Day 3 - 為何用 typedef 比 #define 定義新資料型別更好?

如果要定義一個「指向結構 struct s 的指標」,可以怎麼寫? Day 2 的文章有講過用巨集的寫法: #define dPS struct s * 這行...

2026-08-03 ‧ 由 ralphhong5465 分享
DAY 4

Day 4-內嵌函數

在第二天的文章中,我們提到巨集可以定義函數,但為何不用一般的函數宣告就好,還要用巨集定義函數? 使用巨集定義函數的好處 用巨集定義函數的好處是函數會直接在呼叫處...

2026-08-04 ‧ 由 ralphhong5465 分享
DAY 5

Day 5-靜態變數與靜態函數

這篇文章的主題是 static 這個關鍵字,而 static 可以搭配變數或函數使用。 靜態變數 Static Variable 首先來看把 static 用在...

2026-08-05 ‧ 由 ralphhong5465 分享
DAY 6

Day 6 - 不能改變值的 const 跟 literal

const 跟 literal 的值都不能被改變,看似功能相同,但其本質上的意義還是有落差,我們可以從賦值符號 = 切分為左右邊來認識兩者。 const con...

2026-08-06 ‧ 由 ralphhong5465 分享
DAY 7

Day 7 - 神奇的「最大匹配原則」與前後置遞增

試分析以下程式碼,並推估其運算結果: int a = 5, b = 7, c; c = a+++b; 等等,這 a+++b 是什麼東西?不會報錯嗎? 最大匹配...

2026-08-07 ‧ 由 ralphhong5465 分享
DAY 8

Day 8 - 隱含類型轉換的陷阱

試分析下列程式碼: #include <iostream> int main() { unsigned int a = 6; in...

2026-08-08 ‧ 由 ralphhong5465 分享
DAY 9

Day 9-萬惡的指標

學 C 或 C++ 之類會處理記憶體位址的程式語言,最令人害怕的莫過於「指標」,現在就讓我們深吸一口氣、準備好清晰的頭腦與十足的耐心,來好好面對這萬惡的指標。...

2026-08-09 ‧ 由 ralphhong5465 分享
DAY 10

Day 10 - 指標與整數間的型別轉換

如果給定一個值如 0x67a9,這到底是「指標」還是「(十六進制的)整數」型別呢? 答案是兩種都有可能,而且兩型別之間可以互相轉換,本篇文章就來細細探討這是怎麼...

2026-08-10 ‧ 由 ralphhong5465 分享