mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
2024年10月9日 15:52
This commit is contained in:
parent
c320c1a5d7
commit
e8f8d3bcda
BIN
docs/notes/02_c-leap/06_xdx/assets/8.png
Normal file
BIN
docs/notes/02_c-leap/06_xdx/assets/8.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
docs/notes/02_c-leap/06_xdx/assets/9.png
Normal file
BIN
docs/notes/02_c-leap/06_xdx/assets/9.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 71 KiB |
@ -808,4 +808,141 @@ int main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.2.2 #if … #else … #endif
|
### 6.2.2 #if … #else … #endif
|
||||||
|
|
||||||
|
* 语法:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#if 条件表达式
|
||||||
|
...
|
||||||
|
#else
|
||||||
|
...
|
||||||
|
#endif
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> * ① `#if...#endif`之间还可以加入 `#else` 指令,用于指定判断条件不成立时,需要编译的语句。
|
||||||
|
> * ② `#if … #else … #endif` 指令相当于分支结构中的 `if...else` 语句。
|
||||||
|
|
||||||
|
* 流程图,如下所示:
|
||||||
|
|
||||||
|
![](./assets/8.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* 示例:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define AGE 19
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
// 禁用 stdout 缓冲区
|
||||||
|
setbuf(stdout, nullptr);
|
||||||
|
|
||||||
|
#if AGE > 18
|
||||||
|
printf("你已经是一个成年人了,可以为自己的行为负责!!!");
|
||||||
|
#else
|
||||||
|
printf("你还是一个未成年人,需要监护人监护!!!");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* 示例:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define AGE 17
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
// 禁用 stdout 缓冲区
|
||||||
|
setbuf(stdout, nullptr);
|
||||||
|
|
||||||
|
#if AGE > 18
|
||||||
|
printf("你已经是一个成年人了,可以为自己的行为负责!!!");
|
||||||
|
#else
|
||||||
|
printf("你还是一个未成年人,需要监护人监护!!!");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6.2.3 #if … #elif … #else … #endif
|
||||||
|
|
||||||
|
* 语法:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#if 条件表达式1
|
||||||
|
...
|
||||||
|
#elif 条件表达2
|
||||||
|
...
|
||||||
|
#else
|
||||||
|
...
|
||||||
|
#endif
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> `#if … #elif … #else … #endif` 指令相当于分支结构中的 `if...elseif..else` 语句。
|
||||||
|
|
||||||
|
* 流程图,如下所示:
|
||||||
|
|
||||||
|
![](./assets/9.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* 示例:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define AGE 17
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
// 禁用 stdout 缓冲区
|
||||||
|
setbuf(stdout, nullptr);
|
||||||
|
|
||||||
|
#if AGE < 6
|
||||||
|
printf("你现在处于幼儿阶段\n
|
||||||
|
#elif AGE < 12
|
||||||
|
printf("你现在处于少年阶段\n");
|
||||||
|
#elif AGE < 18
|
||||||
|
printf("你现在处于青年阶段\n");
|
||||||
|
#elif AGE < 40
|
||||||
|
printf("你现在处于壮年阶段\n");
|
||||||
|
#else
|
||||||
|
printf("你现在处于老年阶段\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6.3 #ifdef
|
||||||
|
|
||||||
|
* 语法:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#ifdef 宏名
|
||||||
|
...
|
||||||
|
#else
|
||||||
|
...
|
||||||
|
#endif
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user