【从0开始跟Chat老师学嵌入式 05】C语言入门 - 控制结构

C语言的控制结构包含哪些知识点

Chat老师:

C语言的控制结构主要包括以下几个方面的知识点:

1. 条件判断语句

if 语句
  • if 语句的基本语法:

    if (condition) {
        // 代码块
    }
    

  • if-else 语句:

    if (condition) {
        // 代码块
    } else {
        // 代码块
    }
    

  • if-else if-else 语句:

    if (condition1) {
        // 代码块
    } else if (condition2) {
        // 代码块
    } else {
        // 代码块
    }
    

switch 语句
  • switch 语句的基本语法:
     
    switch (expression) {
        case value1:
            // 代码块
            break;
        case value2:
            // 代码块
            break;
        // 其他case
        default:
            // 默认代码块
    }
    

2. 循环语句

for 循环
  • for 循环的基本语法:
  • for (initialization; condition; increment) {
        // 代码块
    }
    

while 循环
  • while 循环的基本语法:
    while (condition) {
        // 代码块
    }
    

do-while 循环
  • do-while 循环的基本语法:
    do {
        // 代码块
    } while (condition);
    

3. 跳转语句

break 语句
  • break 语句用于终止循环或 switch 语句:
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        // 代码块
    }
    

continue 语句
  • continue 语句用于跳过当前循环的剩余部分并继续下一次循环:
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            continue;
        }
        // 代码块
    }
    

goto 语句
  • goto 语句用于无条件跳转到程序中的标号位置,不建议使用因为会导致程序结构混乱:
    goto label;
    // 其他代码
    label:
    // 代码块
    

4. 函数的返回控制

return 语句
  • return 语句用于结束函数并可选地返回一个值:
    int sum(int a, int b) {
        return a + b;
    }
    

5. 预处理指令

虽然不属于严格意义上的控制结构,但预处理指令也影响程序的控制流:

  • #if, #ifdef, #ifndef, #else, #elif, #endif 用于条件编译:
    #ifdef DEBUG
    // 调试代码
    #endif
    

这些构成了C语言中控制程序流的基本结构和语法,通过这些控制结构,程序可以实现复杂的逻辑和功能。

小白:#if, #ifdef, #ifndef, #else, #elif, #endif 用于条件编译: 这些指令如何使用

Chat老师:

预处理指令 #if#ifdef#ifndef#else#elif#endif 用于在编译时有选择地包括或排除代码块,这称为条件编译。它们通常用于根据不同的编译环境、平台或调试需求来编译不同的代码片段。下面详细介绍每个指令的使用:

#if

  • 用于根据表达式的值(非零为真,零为假)来有条件地编译代码。
#define FEATURE_ENABLED 1

#if FEATURE_ENABLED
    // 如果 FEATURE_ENABLED 为非零,则编译这部分代码
    printf("Feature is enabled.\n");
#endif

#ifdef

  • 用于检查某个宏是否已定义。如果宏已定义,则编译后面的代码块。
#define DEBUG

#ifdef DEBUG
    // 如果 DEBUG 已定义,则编译这部分代码
    printf("Debug mode is on.\n");
#endif

#ifndef

  • 用于检查某个宏是否未定义。如果宏未定义,则编译后面的代码块。
#ifndef RELEASE
    // 如果 RELEASE 未定义,则编译这部分代码
    printf("Not in release mode.\n");
#endif

#else

  • #if#ifdef#ifndef 配合使用,用于在条件不满足时编译替代的代码块。
#define VERSION 2

#if VERSION == 1
    // 如果 VERSION 等于 1,则编译这部分代码
    printf("Version 1\n");
#else
    // 否则,编译这部分代码
    printf("Other version\n");
#endif

#elif

  • 用于在 #if 条件不满足时,检查另一个条件,功能类似于 else if
#define VERSION 2

#if VERSION == 1
    // 如果 VERSION 等于 1,则编译这部分代码
    printf("Version 1\n");
#elif VERSION == 2
    // 否则,如果 VERSION 等于 2,则编译这部分代码
    printf("Version 2\n");
#else
    // 否则,编译这部分代码
    printf("Other version\n");
#endif

#endif

  • 用于结束一个条件编译块,必须与 #if#ifdef#ifndef 配对使用。
#define DEBUG

#ifdef DEBUG
    printf("Debug mode is on.\n");
#else
    printf("Debug mode is off.\n");
#endif

综合示例

以下示例综合使用了这些预处理指令:

#include <stdio.h>

//#define DEBUG
#define VERSION 3

int main() {
    #ifdef DEBUG
        printf("Debug mode is on.\n");
    #else
        printf("Debug mode is off.\n");
    #endif

    #if VERSION == 1
        printf("Version 1\n");
    #elif VERSION == 2
        printf("Version 2\n");
    #else
        printf("Other version\n");
    #endif

    return 0;
}

通过这些预处理指令,可以根据不同的条件有选择地编译代码,增强代码的灵活性和可移植性。

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值