iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
自我挑戰組

c 語言與 python 的30天之旅系列 第 12

C 語言的前置處理器

  • 分享至 

  • xImage
  •  

C 語言的前置處理(Preprocess)是在編譯階段之前,由前置處理器(Preprocessor)執行的一系列操作,主要功能包括巨集替換、檔案包含和條件編譯。 前置處理指令以井號(#)開頭,例如 #include 用於插入檔案內容,#define 用於定義宏,而 #ifdef、#ifndef、#endif 等則用於條件編譯,根據設定決定是否編譯某段程式碼。 最終,預處理器會將原始碼轉換成經過處理的文本,再交由編譯器進行後續的編譯工作

#include <stdio.h>

// 定義常數巨集
#define PI 3.1415926
#define GREETING "Hello, World!"

// 定義函式巨集(注意括號的使用)
#define SQUARE(x) ((x) * (x))
#define MAX(a, b) ((a) > (b) ? (a) : (b))

// 條件編譯
#define DEBUG 1

int main() {
    // 使用常數巨集
    printf("PI 的值: %f\n", PI);
    printf("%s\n", GREETING);
    
    // 使用函式巨集
    int x = 5;
    printf("%d 的平方: %d\n", x, SQUARE(x));
    printf("3和5 比較大的是: %d\n", MAX(3, 5));
    
    // 條件編譯
    #ifdef DEBUG
    printf("[調試] 程式運行到 main 函式\n");
    #endif
    
    // 編譯器版本檢查
    #if __STDC_VERSION__ >= 201112L
    printf("使用 C11 標準\n");
    #elif __STDC_VERSION__ >= 199901L
    printf("使用 C99 標準\n");
    #else
    printf("使用 C89/C90 標準\n");
    #endif
    
    // 錯誤指令
    // #error "這是手動觸發的錯誤"
    
    return 0;
}

上一篇
C 語言 File IO
下一篇
C 語言與資料結構之 堆疊(stack)
系列文
c 語言與 python 的30天之旅14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言