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代码的时候,经常会遇到代码移植的问题