2017-08-17 25 views
0

如何配置VS 2012的编译器将int变量的类型更改为2个字节而不是4个字节? 我试过了:如何配置VS 2012的编译器以更改基本数据类型大小?

#include <iostream> 
#include <stdint.h> 
int main(int argc,char* argv[]) 
{ 
    typedef __int16 int16_t; 
    int16_t x=5; 
    std::cout<<"Size of integer number= "<<sizeof(x)<<" Bytes\n"; 

    system("pause"); 
    return 0; 
} 

这是编译配置的意思吗? 我认为我的问题的答案不是一段代码,它是关于在VS中改变一些设置,我是对吗?

+0

我写了上面的代码,并通过打印整数变量x的大小,它是2 bytes.is,编译器配置? – Ahmed

+0

__int16通过它的名称反映它是2个字节。你的程序没有太大用处。你应该检查VS配置的MSDN帮助。 – Nitin

+0

很确定Windows会采用[ILP32数据模型](https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/datatypesize64.htm),在这种情况下int将会始终为4个字节 - 尽管在任何情况下都不能保证该标准。对于你来说,你几乎肯定需要坚持'int16_t'(从'stdint.h'头文件中,'typedef'是多余的)。 – CookiePLMonster

回答

0

你不能,如果你能破坏你正在使用的每个库的兼容性,那么结果将无法工作。

使用16位编译器,如果它们仍在运送它或int16_t

相关问题