嵌入式 Linux 開發第二天:從程式設計基本觀念出發,涵蓋 C 語言語法規範、資料型別、變數宣告初始化、printf 格式化輸出、標準函數呼叫、註解風格與程式碼排版規範。
程式設計核心觀念
- 編程本質:遇到問題 → 找方案 → 翻譯成電腦指令。
- 四則運算:
+ - * / 直接支援,整數除法捨去小數。
- 語句結束:分號
; 結束單一完整操作。
- 區塊結構:大括號
{} 群組語句,可多層巢狀。
- 頂層區塊:稱為函數,必須有唯一名稱,
main 為程式入口。
- 返回值:
return 回傳整數給作業系統 (0 表成功)。
資料型別與變數
| 關鍵字 | 說明 | 位元/位元組 | 範圍 (32位系統) |
int | 有號整數 | 4 bytes | -231 ~ 231-1 |
char | 字元/小整數 | 1 byte | -128 ~ 127 (有號) |
float | 單精度浮點 | 4 bytes | ~7 位有效數字 |
double | 雙精度浮點 | 8 bytes | ~15 位有效數字 |
- 宣告即初始化:
int num = 4; 避免未定義值。
- 同型別多變數:
int a=1, b=2, c=3;。
- 變數 = 儲存位置標籤:名稱對應記憶體位址,賦值改變儲存內容。
標準輸出 printf 格式化
printf("格式字串", 參數列表);
| 佔位符 | 對應型別 | 範例 |
%d / %i | int | printf("%d\n", 42); |
%c | char | printf("%c\n", 'A'); |
%s | 字串 char* | printf("%s\n", "Hello"); |
%f | float/double | printf("%.2f\n", 3.14); |
%p | 指標位址 | printf("%p\n", &var); |
換行:\n 移至下行開頭;\t 制表符對齊。
標準輸入 scanf 基礎
int a, b;
scanf("%d %d", &a, &b); // 必須加 & 取址
- 格式字串與
printf 相同。
&變數 提供記憶體位址供 scanf 寫入。
- 回傳值:成功讀取的項目數,可用於檢查輸入合法性。
註解風格
// 單行註解:說明單句用途
/*
* 多行註解:檔案頭、函數說明、複雜邏輯區塊
* 作者:xxx
* 日期:2024-01-15
* 版本:1.0
*/
程式碼排版規範 (Coding Style)
- 一行一語句,便於除錯與版本比對。
- 同層級區塊內容對齊(縮進 4 空格或 1 Tab)。
- 大括號風格統一(推薦 K&R:
if () { 左括號不換行)。
- 函數間空一行,邏輯區塊間適當留白。
最小可執行範例
#include <stdio.h>
int main() {
int price = 30;
int quantity = 3;
int total = price * quantity;
printf("三張電影票總價:%d 元\n", total);
return 0;
}
編譯執行流程
gcc hello.c -o hello # 編譯連結產生執行檔 hello
./hello # 執行 (Linux 需 ./ 前綴)
- 無輸出訊息 = 編譯成功。
- 警告
-Wall 建議開啟:gcc -Wall hello.c -o hello。
總結
Day 02 建立「語法規範、型別系統、變數模型、I/O 佔位符、排版習慣」五大支柱。建議動手敲寫 20+ 小程式(算式、轉換、簡單邏輯),讓語法從知識轉化為肌肉記憶,為 Day 03 流程控制 (if/for/while) 鋪平道路。
- 上一篇文章: Linux 嵌入式開發入門 Day 01:檔案系統、路徑、基礎指令與 vi 編輯器
- 下一篇文章: 大話設計模式學習筆記:簡單工廠模式 C++ 實作與 UML 解析
Copyright ©
程式碼之家 All Rights Reserved