我必须在 AVR C++ 项目中包含 stdint 吗?

Do I have to include stdint in an AVR C++ project?

我正在 Atmel Studio 7 中开发 C++ 项目。我是否必须在我的 headers/C++ 中包含 stdbool.hstdint.h 或类似的 AVR-GCC 库文件? bool 是 C++ 中的关键字,但我不知道它是否适用于微控制器项目,因为并非所有 C++ 功能都受支持。 uint8_t 也不是关键字,它是一个 typedef。但是,如果我不包括它们,则该项目符合要求。 uint8_t 可以在 stdint-gcc.h 中找到,它似乎默认包含在项目中。我是否仍应将 #include <stdbool.h>#include <stdint.h> 放入我需要使用它们的文件中?

不,如果没有它们也能编译,则不需要包含它们。如果您将来决定不使用 Atmel Studio,它可能有助于提高可移植性。然后,根据我的经验,如果您离开 Atmel Studio,无论如何您都会遇到很多其他可移植性问题,特别是如果您使用任何专有库,例如 QTouch。让微控制器的东西真正便携通常是一项徒劳的任务。