本帖最后由 cutfall 于 2025-7-29 22:35 编辑
由于某些原因,STM32H7存在一些预定义类型,它将部分标准的32位整型量定义为"long"类型变量 这种16位时代遗留的问题导致,即使是像下面这样简单的函数也会产生错误和警告: #include <stdio.h> #include <stdint.h> int main() { int32_t n = 2+2; int *p = &n; printf("Hello World, 2+2 = %d\n", n); } 而其他IDE都不会出现这种情况。在编译代码时,会产生成百上千个错误和警告。 另外,像__INT_FAST32_TYPE__(定义为int)和__INT_LEAST32_TYPE__(定义为long int)这些类型定义之间也缺乏一致性。 我曾在IDE中通过取消定义和重新定义这些宏来解决这个问题。
|