【总结】单片机重点知识总结记录之C语言条件编译(五)

简介: 【总结】单片机重点知识总结记录之C语言条件编译(五)

二.C语言中多条件编译的灵活使用

在调试23年电赛E题时为了灵活的变动代码,于是使用了以下条件编译,发现条件编译对于调试来说是极其灵活多变而且很方便的,故写下此文章一备忘。

       最开始的是普通的条件编译,如下:

这里通过定义不同宏来编译不同代码,使得整个系统调试起来更加地灵活。

但是由于我下面写了三种方法去调试,每个方法代码有将近一两百行,每次都要注释其他两个再去调试另一个太麻烦了,于是我选择了多条件编译,如下:

大概写法类似于:

1.#ifdef MACRO_A
    // 编译针对 MACRO_A 的代码
    printf("MACRO_A is defined.\n");
#elif defined(MACRO_B)
    // 编译针对 MACRO_B 的代码
    printf("MACRO_B is defined.\n");
#else
    // 如果两者都没有定义,就不编译任何代码
    // 或者可以在这里编译默认情况下的代码
#endif


下面同时保留其条件编译的写法,供以后使用:

1. #if 常量表达式1
2. // ... some codes
3. #elif 常量表达式2
4. // ... other codes
5. #elif 常量表达式3
6. // ...
7. ...
8. #else
9. // ... statement
10. #endif

#if constant a

   ...code1...

#else

       #if constant b

         ...code 2...

       #else

         ...code 3...

     #endif

#endif

由于需要使用逻辑条件编译,于是学习了一下:

       实现如果A和B均未被定义,则执行C:

1. #if !defined(A) && defined(B)
2. //C代码
3. #endif
1.#ifndef A
#ifndef B
    //C代码
#endif
#endif





目录
打赏
0
0
0
0
34
分享
相关文章
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
C语言中的预处理器指令,涵盖其基本概念、常见指令(如`#define`、`#include`、条件编译指令等)、使用技巧及注意事项
本文深入解析C语言中的预处理器指令,涵盖其基本概念、常见指令(如`#define`、`#include`、条件编译指令等)、使用技巧及注意事项,并通过实际案例分析,展示预处理器指令在代码编写与处理中的重要性和灵活性。
97 2
C语言中的条件编译:探索编译时的决策
C语言中的条件编译:探索编译时的决策
|
9月前
|
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
323 0
单片机与c语言
单片机是一种嵌入式系统,它是一个微型计算机系统,包含了微处理器、存储器、输入输出接口等功能,能够完成各种控制和处理任务。C语言是一种高级编程语言,它是一种结构化的、面向过程的语言,常用于编写系统软件、嵌入式系统和应用程序等。
74 0
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
135 0
sm2国密算法的纯c语言版本,使用于单片机平台(静态内存分配)
sm2国密算法的纯c语言版本,使用于单片机平台(静态内存分配)
C语言课设项目-51单片机-定时器和计数器
C语言课设项目-51单片机-定时器和计数器
287 0

物联网

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等