C/C++ 允许选择整数宽度的编译器
C/C++ Compiler that allows int width selection
有谁知道允许您在 16 位和 32 位类型 int 之间 select 的现代本机 Windows C 或 C++ 编译器?我在 80 年代遇到过一个具有此功能的交叉编译器,但我需要一个本机编译器。作为向我的学生讲授可移植性和标准合规性的一部分,我希望能够在他们乘法、加法等时自动检查他们的代码是否溢出。两种类型的 int 数量和结果将大于 16 位 int 可能代表。谢谢
参见 C++11 及之后定义的整数类型:http://en.cppreference.com/w/cpp/types/integer : int8_t
, int16_t
, int32_t
, int64_t
几乎所有现代 C++ 编译器都应该支持这些:GCC you can use MinGW on Windows, MSVC, Intel, Clang, even Borland/Codegear/Embarcardero 因为它们现在是标准的一部分。
固定宽度整数类型自 C99 以来一直是 C 语言的一部分,但最终在 C++11 中添加到 C++ 中,请参阅:N1988
C++ 编译器支持 shorts。如果这是为了教学,你不能告诉你的学生使用短裤而不是整数吗?
如果目的只是告诉他们有关溢出的信息,为什么不能向使用会导致溢出的整数的程序提供输入?输入像 20 亿 + 20 亿或 20 亿 x 6?
当这是一个问题时,人们还习惯于定义自己的常量,如 INT16,并将它们映射到底层数据类型;像 C++ 上的 INT16 == short。
最后,如果您对 short 有疑问,自 C++11 以来,C++ 确实提供了 16 位整数类型作为标准数据类型。
如果您绝对需要一个 16 位的 int,您可能会在 Digital Mars 等允许您针对 Win 16 API 或旧版本 Visual Studio 的编译器中找到它。
有谁知道允许您在 16 位和 32 位类型 int 之间 select 的现代本机 Windows C 或 C++ 编译器?我在 80 年代遇到过一个具有此功能的交叉编译器,但我需要一个本机编译器。作为向我的学生讲授可移植性和标准合规性的一部分,我希望能够在他们乘法、加法等时自动检查他们的代码是否溢出。两种类型的 int 数量和结果将大于 16 位 int 可能代表。谢谢
参见 C++11 及之后定义的整数类型:http://en.cppreference.com/w/cpp/types/integer : int8_t
, int16_t
, int32_t
, int64_t
几乎所有现代 C++ 编译器都应该支持这些:GCC you can use MinGW on Windows, MSVC, Intel, Clang, even Borland/Codegear/Embarcardero 因为它们现在是标准的一部分。
固定宽度整数类型自 C99 以来一直是 C 语言的一部分,但最终在 C++11 中添加到 C++ 中,请参阅:N1988
C++ 编译器支持 shorts。如果这是为了教学,你不能告诉你的学生使用短裤而不是整数吗?
如果目的只是告诉他们有关溢出的信息,为什么不能向使用会导致溢出的整数的程序提供输入?输入像 20 亿 + 20 亿或 20 亿 x 6?
当这是一个问题时,人们还习惯于定义自己的常量,如 INT16,并将它们映射到底层数据类型;像 C++ 上的 INT16 == short。
最后,如果您对 short 有疑问,自 C++11 以来,C++ 确实提供了 16 位整数类型作为标准数据类型。
如果您绝对需要一个 16 位的 int,您可能会在 Digital Mars 等允许您针对 Win 16 API 或旧版本 Visual Studio 的编译器中找到它。