[C语言基础]C语言编码经验积累【持续更新中...】

本文是作者在C语言嵌入式开发中的经验积累,涵盖了带参数的宏、调试技巧、数据类型的长度、函数指针数组、汇编与C混合编程、换行符差异、编码习惯等多个方面,旨在促进开发者之间的交流和学习。
摘要由CSDN通过智能技术生成

C语言是嵌入式开发中常用的语言,以下是本人用C语言进行开发过程中的一点小积累。

希望透过分享心得能多和大家交流经验心得,持续更新中...


1. 带参数的宏怎样返回数值?

/* 编写一个判断输入值是否为0的宏,如果为0则返回1,如果不为0则返回0。 */

#define IS_ZERO(m)    \
({                    \
    ((m)==0) ? 1:0;   \
})

/* 求最大值和最小值的宏 */

#define  MAX(x,y) ((x)>(y)) ? (x):(y))
#define  MIN(x,y) ((x)<(y)) ? (x):(y))
 



2. 编写调试打印工具例程。

         在开发过程中经常需要对代码添加打印进行分析调试,这里提供一个本人常用的调试打印宏。

#define DEBUGMSG_OPEN    1

#define MYLOGO "[DebugMsg] "

#define FLAG_FILENAME    1
#define FLAG_FUNCTION    1
#define FLAG_LINE    1

#define MY_DEBUG_MSG(fmt,args...)            \
{                                            \
    if(DEBUGMSG_OPEN){                       \
        printf(MYLOGO);                      \
                                             \
        if(FLAG_FILENAME)                    \
            printf("%s ",__FILE__);          \
                                             \
        if(FLAG_FILENAME)                    \
            printf("%s ",__FUNCTION__);      \
                                             \
        if(FLAG_FILENAME)                    \
            printf("%d: ",__LINE__);         \
                                             \
        printf(fmt,##args);                  \
    }                                        \
}


3. 重复free一个指针,会有什么后果?

答案:相当于free一个野指针,后果无法预料。



4. 工程上常用的自定义数据类型。

         写嵌入式C代码的时候,经常会遇到代码移植的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值