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

时间:2021-05-26 13:08:54

标签: c clang warnings typedef

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

我使用的是带有 C 的 ARM 的 segger clang 编译器,而不是 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);
}

1 个答案:

答案 0 :(得分:0)

typedef 只是类型的别名,因此 error_tuint32_t 相同。因此,转换不会有警告。

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