在 Linux 下,#ifdef
是 C/C++ 預處理器指令中的一種,用于條件編譯
#ifdef
判斷宏定義:#ifdef DEBUG
printf("Debug mode is enabled.\n");
#endif
#ifndef
判斷宏未定義:#ifndef DEBUG
printf("Debug mode is disabled.\n");
#endif
#if defined()
組合多個宏定義:#if defined(DEBUG) && defined(LOG_LEVEL)
printf("Debug mode is enabled with log level: %d\n", LOG_LEVEL);
#endif
#else
和 #elif
控制不同分支的編譯:#ifdef DEBUG
printf("Debug mode is enabled.\n");
#else
printf("Debug mode is disabled.\n");
#endif
#undef
取消宏定義:#define DEBUG
#undef DEBUG
#ifdef DEBUG
printf("Debug mode is enabled.\n");
#else
printf("Debug mode is disabled.\n");
#endif
#pragma once
避免頭文件重復包含:#pragma once
// 頭文件內容
#include
包含其他頭文件:#include<stdio.h>
#include "my_header.h"
#define
定義常量或宏函數:#define PI 3.14159
#define SQUARE(x) ((x) * (x))
#error
和 #warning
生成編譯錯誤或警告:#ifdef DEBUG
#error "Debug mode is not supported in this version."
#endif
#ifdef __GNUC__
#warning "Using GNU C compiler, some features may not be supported."
#endif
#line
改變源代碼行號和文件名:#line 100 "my_source.c"
總之,在 Linux 下使用 #ifdef
可以幫助你根據不同的條件編譯代碼,提高代碼的可維護性和可移植性。請確保在使用預處理器指令時遵循良好的編程實踐,以便于代碼的閱讀和維護。