出于类型检查的目的,我想在
的行上定义一个函数void myfunc(type1 a, type2 b)
{
...
}
其中type1
和type2
都是uint8_t
的typedefed。到目前为止一切顺利,但出于理智和检查目的(想想DbC),我想阻止调用函数,第一个参数的值为type2
,第二个参数的值为type1
。可悲的是,C的隐式类型转换在这里反对我。有谁知道一种方式?
答案 0 :(得分:6)
您可以将两种类型包装在Struct中。
typedef struct {
uint8_t data;
} type1;
typedef struct {
uint8_t data;
} type2;
编辑: 我不喜欢它,因为你现在必须使用a.data而不是
答案 1 :(得分:0)
我认为你可以使用struct包装你的类型,然后将指针传递给这些结构。