我正在使用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/