我知道在C ++程序中避免使用c样式转换总是更好。
以下是一个非常简单的代码,它在windows VC++ compiler
上编译良好(也运行成功。打印数字)。但无法在C++ - GCC
和C++ - Clang
上进行编译。
char c = 'A';
int num = unsigned char(c);
是的,它不是一种标准的转换方式,因此GCC
或Clang
编译时失败没有错。
但为什么VC++ (Microsoft Visual Studio)
能够成功编译和执行?
它真的是投射概念还是其他一些编程概念允许它在VC++
中工作?
正如VC++
中所做的那样,为了使上面的代码有效,可以在Windows端粗略实现。 (粗略猜测也很好......只是为了理解它们(Microsoft Windows)如何处理它。)
注意:VC compiler
(c编译器)无法编译上面的代码段。有趣的是VC++ compiler
,编译和运行都很好。