【发布时间】:2019-06-13 13:59:03
【问题描述】:
我听说不同的微控制器会有不同的字长。所以c程序上的结构填充分别在8位,16位,32位和64位微控制器中有所不同。如果是这种情况,还请告诉我这些控制器上的 int 大小和字长指针的大小
【问题讨论】:
-
在为相同架构进行编译时,它甚至可能因编译器而异。 C++ 标准提供了某些最低限度的保证(例如,
int至少为 16 位),如果可用,您可以使用具有定义大小的类型(例如int64_t)。但我不认为你得到的远不止这些。 -
sizeof(char) <= sizeof(short) && sizeof(short) <= sizeof(int) && sizeof(int) <= sizeof(long) && sizeof(long) <= sizeof(long long)通常被认为在任何地方都是正确的。 -
您已标记 C++,但在您的问题中仅提及 C。
-
@EugeneMart 没有理由这样说。
-
@EugeneMart 这不是真的。许多微控制器具有扩展的寻址模式,但只能处理更少量的数据。几乎所有 8 位和 16 位 MCU 都是这种情况。
标签: c embedded embedded-linux microcontroller