我在xp的cmd中运行tc为什么long int 只有16位?
请问long int的长度由机器,编译器,操作系统三者怎么决定的?
同一个机器,同一个编译器在不同的操作系统下,长度一样吗?
同一个操作系统,同一个机器在不同编译器上,一样吗?
等等问题。
我觉得现在自己跟范伟似的好乱呀!呵呵
以下是引用iamwangyong在2006-9-22 16:31:35的发言:
账号已被封,我运行了你的程序,发现是4个字节。可是为什么我运行的程序只吃16位呢?
#include "dos.h"
main()
{ char ch;
unsigned long result;
ch='1';
if(ch=='1')
{
scanf("%x",&result); /*scanf("%lx",&result)*/
getchar();
printf("result is: %x",result); /*printf("result is: %lx",result);*/
/* goto loop; */
}
else
{
}
}
运行程序的时候,我输入:12345678
结果是:result is:5678
为什么
是你自己的程序问题
不是机子问题
看我改正后的,一点问题都没了
看书要仔细,呵呵,不要说我老气横秋哈,这点真的很重要
我都已经30多岁的人了,给你们后辈说点经验
"L"是小写的,表示接收长型,如lx表示无符号长整型(32位)
lf表示double型(64位)
相应的还有"s",表示short
sd短整形
输出也是一样的
不用l就成了int型
呵呵
[此贴子已经被作者于2006-9-22 17:13:25编辑过]