📅  最后修改于: 2023-12-03 14:40:27.493000             🧑  作者: Mango
在 C 语言中,#else 是一种预处理指令,用于指定在 #if 或 #ifdef 构造中未能满足条件时执行的代码块。
#else 的语法如下:
#ifdef MACRO
// 如果 MACRO 被定义,则执行此处的代码
#else
// 如果 MACRO 未被定义,则执行此处的代码
#endif
或者
#if expression
// 如果 expression 表达式为真,则执行此处的代码
#else
// 如果 expression 表达式为假,则执行此处的代码
#endif
常常用来检测宏是否已定义或表达式是否为真。当宏未定义或者表达式为假时,执行 #else 后的代码段,否则执行 #if 或 #ifdef 代码块中的代码。
看下面的例子:
#include <stdio.h>
#define HELLO
int main() {
#ifdef HELLO
printf("Hello World!\n");
#else
printf("Goodbye World!\n");
#endif
return 0;
}
输出:
Hello World!
因为 HELLO 被定义,并且被 #ifdef 检测到了,因此执行了 #ifdef 后的代码块。
而当我们注释掉 HELLO 后再次运行,输出结果为:
Goodbye World!
因为 HELLO 被注释掉了,因此没有通过 #ifdef,所以执行了 #else 后的代码块。
使用 #else 是一种很方便的方法来检测宏定义或表达式是否为真,并进行对应的代码块执行。对于很多开发者来说,这是一个非常有用和常用的 C 语言预处理指令。