【总结】单片机重点知识总结记录之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





相关文章
|
6月前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
5月前
|
Unix 编译器 C语言
C语言中的条件编译:探索编译时的决策
C语言中的条件编译:探索编译时的决策
|
C语言 芯片 数据格式
C语言课设项目-51单片机-红外通信
C语言课设项目-51单片机-红外通信
141 0
|
6月前
|
C语言
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
248 0
|
6月前
|
程序员 C语言 开发者
单片机与c语言
单片机是一种嵌入式系统,它是一个微型计算机系统,包含了微处理器、存储器、输入输出接口等功能,能够完成各种控制和处理任务。C语言是一种高级编程语言,它是一种结构化的、面向过程的语言,常用于编写系统软件、嵌入式系统和应用程序等。
59 0
|
编译器 C语言
C语言宏定义与条件编译
C语言宏定义与条件编译
110 0
|
C语言
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
97 0
|
算法 安全 程序员
sm2国密算法的纯c语言版本,使用于单片机平台(静态内存分配)
sm2国密算法的纯c语言版本,使用于单片机平台(静态内存分配)
|
C语言 Windows
C语言课设项目-51单片机-定时器和计数器
C语言课设项目-51单片机-定时器和计数器
224 0
|
程序员 C语言
C语言课设项目-51单片机-中断系统
C语言课设项目-51单片机-中断系统
163 0

热门文章

最新文章