我正在使用tricore v3.4.6编译器。

假设我有一个有符号整数,例如sint32 a = -1
并希望使用printf打印。

我尝试了printf("Signed number %i", a)以及printf("Signed number %d", a)这两个都向我发出了编译器警告,例如

警告:int格式,sint32 arg

最佳答案

与问题注释中所建议的不同,sint32在安全性至关重要的嵌入式系统中并不少见,通常回溯到int的类型转换。 (例如,在某些MISRA环境中)。

因此

sint32 a = -1;
printf("%d", a);


无论如何应该做到这一点。使用gcc v5.2.1和arm-gcc v5.2.1(-Wall,无警告)进行了测试。

如果仍然发出警告,请尝试找出sint32实际映射到的内容,然后尝试long -print:printf("%ld")。但是,然后再次检查sint32的字节长度是否真的是32位? (有些系统甚至可能少于32位架构)

关于c - 如何使用gcc编译器tricore v3.4.6在C中printf sint32?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35364786/

10-10 23:24