我想把红外解码程序模块化,程序void ir_nec_decode(int8_t *decode_status,int8_t *nec_code)包括两个指针,*decode_status输出解码结果GET_NEC_NULL /GET_NEC_1ST_CO/DE GET_NEC_REP_CODE ;nec_code输出解码结果的4字节数组。
其中头文件:
- #define GET_NEC_NULL 0
- #define GET_NEC_1ST_CODE 1
- #define GET_NEC_REP_CODE 2
- extern void ir_nec_decode(int8_t *decode_status,int8_t *nec_code);
复制代码当中几个宏定义:
- #define GET_NEC_NULL 0
- #define GET_NEC_1ST_CODE 1
- #define GET_NEC_REP_CODE 2
复制代码我既要对外开放,程序ir_nec_decode中也需要用到。
如果在.h和.c中都写一遍
或者.c中include自身这个.h一次
都感觉不符合模块化的原则。
这种情况应该如何处理?
我用开部分台系OTP,他们C编译器不支持enum。
昨天晚上查了,包含自身头文件是为了让编译器检查声明的函数原型,谢谢。
继续请教:
.h适宜include硬件部分头文件吗?还是建议在.c里面做?
全局变量允许其它.c调用,这些变量建议.h中还是在.c中定义?
变量定义需要做到c里面, 不然多次include(被不同的C文件)就报错了, 因为这导致每个C文件里面都定义一次这个变量. h里面只能够extern int xxx(变量, 不是说函数, 所有函数声明默认都是extern的)
一周热门 更多>