❶ 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位的。
工程屬性裡面可以選擇: