首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言代碼編寫三步法:頭文件、主函數、輸入-處理-輸出

     編輯:C 語言問答

標準骨架


/* 1. 頭文件區:聲明外部依賴 */
#include 
#include 
#include 

/* 2. 常量/類型/全局變量區(盡量少用全局) */
#define MAX_N 100
typedef struct { int x, y; } Point;

/* 3. 函數聲明區(模塊化關鍵) */
int read_data(Point* arr, int max_n);
void process_data(Point* arr, int n);
void print_result(const Point* arr, int n);

/* 4. 主函數:程序入口,只負責編排流程 */
int main(void) {
    Point data[MAX_N];
    int n = read_data(data, MAX_N);      // 輸入
    if (n <= 0) return 1;
    process_data(data, n);               // 處理
    print_result(data, n);               // 輸出
    return 0;
}

/* 5. 函數定義區:各司其職 */
int read_data(Point* arr, int max_n) { ... }
void process_data(Point* arr, int n) { ... }
void print_result(const Point* arr, int n) { ... }

三階段詳細展開

階段一:數據錄入 (Input)

  • 交互式:scanf / fgets + 解析,務必檢查返回值;
  • 文件讀取:fopen / fread / fscanf,檢查 NULL;
  • 命令行參數:argc/argv,使用 getopt 解析;
  • 網絡/管道:read / recv,處理短讀/斷開。

階段二:解決問題 (Processing)

  • 演算法核心:排序、查找、圖遍歷、動態規劃、位運算技巧;
  • 數據結構選型:數組/鏈表/哈希表/堆/紅黑樹/Trie,按訪問模式選;
  • 邊界與錯誤處理:空輸入、溢出、無解、資源耗盡,失敗要早、要快、要響亮。

階段三:結果輸出 (Output)

  • 控制台:printf 格式化,對齊、精度控制;
  • 文件:fprintf / fwrite,注意刷新 fflush;
  • 返回碼:return 0 成功,非零碼區分錯誤類型;
  • 日誌:分級輸出 (DEBUG/INFO/WARN/ERROR) 到 stderr/syslog。

進階習慣

  1. 每個 .c 對應一個 .h,.h 只放聲明;
  2. 靜態函數用 static 限制作用域;
  3. 編譯旗標 -Wall -Wextra -Werror -fsanitize=address,undefined 養成肌肉記憶;
  4. 提交前跑 clang-format + cppcheck + 單元測試。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved