【发布时间】:2011-03-09 13:49:46
【问题描述】:
出于类型检查的目的,我想在以下行定义一个函数
void myfunc(type1 a, type2 b)
{
...
}
其中type1 和type2 都被定义为uint8_t。到目前为止一切都很好,但出于理智和检查目的(想想 DbC),我想防止函数被调用,第一个参数为 type2 值或第二个参数为 type1。可悲的是,C 的隐式类型转换在这里对我不利。有人知道方法吗?
【问题讨论】:
-
这不是 C 对你的隐式类型转换。在 C++ 中你会遇到同样的问题。根据定义,使用 typedef 与使用 typedef 的类型相同。
-
也在这里讨论stackoverflow.com/questions/18108046/…(对于 C++,但他们会分享一些想法)
标签: c type-conversion typechecking