❶ C语言数据类型所占字节是和运行的机器位数有关还是编译器有关
1)C语言一般指的是ANSI C的标准,对应的处理器分别是32位和64位的。
2)类型分为内置类型和自定义类型(非内置类型)
内置类型指的是无需声明就可使用的类型,比如char,double,int等。
自定义类型指的是使用前必须声明的,如struct StructName{};结构类型,int a[5];数组类型以及enum Color{};枚举类型等。未经声明的类型不可使用
3)ANSI C只对内置类型的大小进行了规范:
char |double| folat |int |long int| pointer
64bits 1 8 4 4 8 8
32bits 1 8 4 4 4 4
从上表可以看出,对于前三者,大小是统一的,只有long int 和pointer(指针)在不同的机器上占用了不同的大小。他们的规则是,long int和pointer的大小等于机器位长(8位一个字节).最后说明一点,unsigned的关键字和类型组合和该类型的大小相同,因为有符号和无符号只对编译器有效,机器对他一无所知。
❷ 怎样查看自己电脑的编译器是多少位的
编译器有好多种,每个语言都有,一般都有-v或者--version命令可以看版本信息,包括生成的代码对应的机型(target),例如:Target: x86_64-w64-windows-gnu 就是生成64位的x86-64机器码,编译时可以靠-m32等命令控制.
至于编译器本身,那跟你下载时的版本有关,如果你确实需要了解类似GCC本身是多少位的,可以这样:
linux下:
filexxx#xxx代表程序名
例如:
[cosmia@excalibur~]$filesqlite3.i686sqlite3.x86_64
sqlite3.i686:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),dynamicallylinked(usessharedlibs),forGNU/Linux2.6.32,BuildID[sha1]=,stripped
sqlite3.x86_64:ELF64-bitLSBexecutable,x86-64,version1(SYSV),dynamicallylinked(usessharedlibs),forGNU/Linux2.6.32,BuildID[sha1]=,stripped
windows下:
用7zip打开那个.exe文件,看cpu信息
详细参考方法:
http://www.hu.com/question/23027723
❸ dev C++是多少位的编译器,,,,
对 windows下的各种编译器都是32位精读的。int最大值是21几几几那个十位数。如果要32767 就换成short int就好
❹ C++ 编译器自动保留6位有效数字,怎么输出所有的位数
看你要求的
是多少,选择合适的类型保存数据,float精度就是6位小数,想取得更高的精度使用double存储,不要用float
double
v
=
1.1
*
1.1
*
1.1
*
1.1;
❺ sizeof(long)是4还是8的不同是由不同编译器决定的,还是操作系统的位数,还是电脑的位数,还是C的标准
这个是由编译器决定的,有的是32位编译器,有的是64位编译器,有的是标准C编译器,有的是C++编译器,都有可能不同。
❻ C语言各类型数据的位数是多少
这个跟系统有关的,你可以通过sizeof各个类型来看字节数,从而算出位数。具体可以用以下代码看
#include<stdio.h>
void main()
{
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long int));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
}
一般我们用的32位系统是:
类型 字节数 位数 范围
int 4 32 -2147483648 ~ 2147483647
long 4 32 同上
float 4 32 -2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38
double 6 64 -2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308
❼ C中int所占用字节数是和它所用的编译器的位数有关,那么以C开发的java和php存不存在这个问题呢
严格的说,是跟系统位数相关。java不存在这个问题,java试运行在虚拟机上,与平台无关。php我不太连接。
课本上的字节数一般都是按照32位机来的,严格的说,应该加上系统平台位数的限定..
中国的教材都那样...糊弄人的...
❽ 怎样用c语言编译器列出8位数的组合
#include<stdio.h>
voidpm(unsignedintbeg,constunsignedintn)//调用时,beg恒0,n为数字的位数。
{
inti;
staticcharstr[10]={0};
if(beg!=n)
for(i=0;i<10;i++){
str[beg]='0'+i;
pm(beg+1,n);
str[beg]=0;
}
elseputs(str);
}
intmain(intargc,char*argv[])
{
pm(0,5);//示例
pm(0,8);
return0;
}
❾ c语言数据长度16位和32位什么意思
楼上不要胡说!
>>是说16位的机器就是2个,32位是4个吗?
这句话说的不太对,
这个其实指的是编译器的位数,
对于16位编译器(例如,tc),int型占2个字节
对于32位编译器(例如,vc,gcc),int型占4个字节
这里指的是编译器的位数,不是cpu的位数
❿ 如何查看电脑上安装的visual studio 2010的编译器的配置是32位还是64位的
指针大小为4就是32位的,为8就是64位的。
工程属性里面可以选择: