您的位置:首页 > 大数据 > 人工智能

AIX平台下面long的长度与编译选项-q64的关系

2015-06-25 10:39 453 查看
日常我们的认知是在64位的机器上,int是4个字节,long是8个字节。但是在AIX,这个问题会更复杂一些:

AIX可能是为了向下兼容的目的,通过编译选项 -q64 来规定long长度

测试代码:

void TestInt()
{
int nTemp=0;
long lTemp=0;
long long llTemp=0;

printf("size of int is %d\n", sizeof(nTemp));
printf("size of long is %d\n", sizeof(lTemp));
printf("size of long long is %d\n", sizeof(llTemp));

return;
}

int main()
{
printf("Hello World!\n");

TestInt();

return 0;
}


有加-q64的话,long的长度为8,否则为4

同理,在变长参数中,没加选项的时候,%d和%ld可以通用; 如果加了选项,%ld和%lld可以通用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: