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

C語言多檔案專案組織:頭檔宣告與原始檔定義分離

     編輯:C 語言問答

標準三檔案架構

project/
├── main.c        // 主程式入口
├── utils.h       // 介面宣告 (頭檔)
└── utils.c       // 實現定義 (原始檔)

utils.h (介面契約)

#ifndef UTILS_H
#define UTILS_H

// 僅宣告,不定義
int add(int a, int b);
void print_hello(void);

#endif

utils.c (實現)

#include "utils.h"
#include 

int add(int a, int b) { return a + b; }

void print_hello(void) { printf("Hello from utils!\n"); }

main.c (使用者)

#include "utils.h"

int main()
{
    printf("3 + 5 = %d\n", add(3, 5));
    print_hello();
    return 0;
}

編譯連結指令

# 方法一:單步編譯連結
gcc main.c utils.c -o app

# 方法二:分離編譯 (大型專案適用)
gcc -c utils.c -o utils.o
gcc -c main.c -o main.o
gcc main.o utils.o -o app

關鍵規則

  • 頭檔 **僅含宣告** (函數原型、extern 變數、型別定義、巨集),**不含定義** (函數體、非 extern 變數定義)。
  • 頭檔需 **防重複包含** (#ifndef / #pragma once)。
  • 原始檔 #include "utils.h" 以讓編譯器檢查宣告與定義一致。
  • 跨目錄時,編譯器加 -Iinclude_path,連結器加 -Llib_path -lutils。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved