c-启用从typedef(uint32_t)到uint32_t的隐式转换会导致什么警告,clang



我希望给定的例子会导致编译器警告,因为存在从error_t到int的隐式转换。

我使用的是带有C的ARM的segger-Crang编译器,而不是C++。

typedef uint32_t error_t ; 
error_t Test(error_t test){
return test;
}
int main(){
error_t e = 0;
uint32_t t32 = Test(e);
}

typedef只是类型的别名,因此error_tuint32_t相同。因此,不会对转换发出任何警告。

只有在可能丢失精度的情况下,并且只有在启用了-Wall-Wextra中未包含的某些选项时,才会出现算术类型之间的类型转换警告。

最新更新