嵌入式c語言資料型別和標準c語言的資料型別是一樣的嗎,如果不一樣請舉例說明下謝謝

2021-04-02 08:04:53 字數 5638 閱讀 4297

1樓:匿名使用者

嵌入式c語言資料型別和標準c語言的資料型別是一樣的,都是ansic。但是使用方式有區別:

嵌入式c語言資料

型別非常嚴格,對有符號無符號限定很嚴格,例如對資料很大時使用unsigned int等。

2樓:

這個的話要看你具體的環境了,一般都會有說明手冊的。不同的資料型別最終體現在每次分配的儲存空間不同。

其實你如果想知道是否一樣的話可以用sizeof運算就可以搞定。

例如你在兩個不同的平臺(pc和嵌入式平臺上)上執行這樣一段程式,就可以看出他們的不同。

int main( void )

3樓:匿名使用者

基本上是一樣的。

我沒碰過不同的。

c語言的資料型別分為幾種?

4樓:靠名真tm難起

short、int、long、char、float、double這六個關鍵字代表c 語言裡的六種基本資料型別。

在不同的系統上,這些型別佔據的位元組長度是不同的:

在32位的系統上

short

佔據的記憶體大小是2 個byte;

int佔據的記憶體大小是4

個byte;

long佔據的記憶體大小是4

個byte;

float佔據的記憶體大小是4

個byte;

double佔據的記憶體大小是8

個byte;

char佔據的記憶體大小是1

個byte。

具體可以用sizeof測試一下即可。

5樓:哇哎西西

c語言的基本資料型別為:整型、字元型、實數型。

這些型別按其在計算機中的儲存方式可被分為兩個系列,即整數(integer)型別和浮點數(floating-point)型別。

這三種型別之下分別是:short、int、long、char、float、double 這六個關鍵字再加上兩個符號說明符signed和unsigned就基本表示了c語言的最常用的資料型別。

下面列出了在32位作業系統下 常見編譯器下的資料型別大小及表示的資料範圍:

6樓:匿名使用者

資料型別包含兩方面的內容:資料的

表示和對資料加工的操作。資料的全部可能表示構成資料型別的值的集合。資料全部合理的操作構成資料型別的操作集合。

在c語言中,把整型、實型和字元型稱為基本資料型別,又稱整型和實型為數值型。為了描述更復雜的資料結構,c語言還有構造型別、指標型別、放舉型別和空型別。構造型別是指由若干個相關的資料組合在一起形成的一種複雜資料型別。

1.整型

整型資料按其儲存在記憶體中的二進位資訊的最高位是當作數值資訊位還是當作資料的符號位,將整型資料分成帶符號整型和無符號整型兩種。每種整型又按所需的位元組個數的多少分成三種。所以整型共有6種:

帶符號整型(int)、帶符號短整型(short int)、帶符號長整型(long int,或 long)、無符號整型(unsigned int)、無符號短整型(unsigned short int)以無符號長整型(unsigned long)。

2.實型

實型資料有表示範圍和精度兩個不同的特徵,為了適應數的範圍和精度的不同要求,實型資料分三種型別:單精度型(也稱浮點型 float)、雙精度型(double)、長雙精度型(long double)。

3.構造型別

構造型別是指由若干個相關的資料組合在一起形成的一種複雜資料型別,構造資料型別的成分資料可以是基本資料型別的,也可以是別的構造型別的。按構造方式和構造要求區分,構造型別主要有陣列型別、結構型別和共用型別。陣列型別是由相同型別的資料組成;結構型別可以由不同型別的資料組成;當不同資料型別不會同時使用時,以節約記憶體,讓不同資料佔用同一區域,這就是共用型別。

4.指標型別

指標型別是取程式物件(如變數)在記憶體中佔居的地址為值的一種特殊的資料型別。

5.列舉型別

當變數只取很少幾種可能的值,並分別用識別符號對值命名時,這種變數的資料型別可用列舉型別來表示。如變數表示一個星期中的某一天,就可用校舉型別描述該變數的型別,並以星期見的英文名對日期命名,對應的變數取某日的星期名稱為其值。

6.void型別

用保留字void表示的資料型別有兩種完全相反的意思,或表示沒有資料(沒有結果、沒有形式引數),或表示某種任意型別的資料(如又與指標結合,用 void。標記)。 void表示空型別,void。

表示任意資料的指標型別,程式如要使用 void。型別的資料,應該將它強制地轉換成某種具體的指標型別。

2.2 常量

常量是指程式執行過程中其值不可改變的資料。常量按其值的表現形式可分為如下型別:整型常量、實型常量、字元型常量、字串常量和指標常量。

1.整型常量

c語言整型常量的書寫形式有三種:

(1)十進位制整數。通常整數的寫法,如0,123,-45,+25。

(2)八進位制整數。以數字符0開頭並由數字符0-7組成的數字符序列,為八進位制整數。如 0123表示八進位制整數,其值等於十進位制整數 l*8*8+2*8+3=83。

(3)十六進位制整數。十六進位制整數以ox(或ox)開頭的整數。表示十六進位制數的數字將有16個,它們分別是0-9和a、b、c、d、e、f,其中六個英文字母也可以小寫。

例如,0x123表示十六進位制整數,其值等於十進位制整數1*16*16+2*16+3=291; oxabc,其值等於10*16*16+11+16+12=2748。

整型常量也可在整數之後接上字母l(或l),特別指明它是 long型的。

整型常量也可在整數之後接上字母u(或u),特別指明是不帶符號的,即是unsigned型的。為指明不帶符號的long型整型常量,則需在整數之後同時加上字母u和l,表明該整型常量是unsigned long型的。

整型資料以二進位制形式存放,要求短整型資料的位元組數不能大於整型資料的位元組數;整型資料的位元組數不能大於長整型資料的位元組數。對於帶符號的整數,用二進位制**的最左二進位作為數的符號,1表示負數,0表示正數。

2.實型常量

c語言實型常量的一般書寫格式是:

正負號 整數部分.小數部分 指數部分

其中,正負號可有可無,無正負號即為正實數;整數部分和小數部分都是十進數字符序列;指數部分是e(或e)後接上正負號(正號可有可無)和十進數字符序列。

按上述格式書寫實型常量,另有兩條限制:

(l)整數部分和小數部分可以任選,但不可同時都沒有。

(2)小數點和指數部分不可以同時都沒有。

ansic引入兩個字尾字元,用 f標識 float型實型常量,用 1(或 l)標識 fong double型實型常量,而無字尾符的實型常量被認為是double型的實型常量。

要注意實型常量的有效位數,不要以為寫上的數字都能被計算機所接受。在大多數c系統中,一個float型實型資料在記憶體中佔用4個位元組(32個二進位),約7個十進位有效數字,能表示絕對值最接近0的實數約為10的-38次方,最大的實數約為10的38次方。例如,對於** float x=123456.

123f,在大多數系統中,實型常量123456.123f的最後兩位數字是無效的。

double型實型資料佔用8個位元組(64個二進位),約15個十進位有效數字,能表示絕對值最接近0的實數約為10的一308次方,最大的實數約為10的308次方。

3.字元常量

字元型資料用於表示一個字元值,但字元型資料的內部表示是字元的ascll**(8位二進位的二進位制形式)。字元型資料的型別符用char來標記。字元型常量的書寫方法:

(l)普通字元--用單引號括起一個字元。如』a』、』b』、』b』、』$』。

(2)特殊字元--用』\字元或字元列採標記。這種標記方法有三種:

』\特定字元』,標記特定控制符,如換行符用』\ n』來標記。

』\ 1至3個人進位制數字』,以人進數表示字元的ascll**。

』\ x1至2個十六進位制數字符』,以十六進位制數表示字元的 ascll**。

由於字元以**存放,所以也可把字元值當作一個小整數。反之,一個小整數也可把它理解為是某個字元的**,把它當作一個字元。

4.字串常量

字串常量用來表示一個字元序列,它的書寫方法用雙引號括住字元序列。例如:」abc」、」」等。

字串常量「」是一個空字串,即不含任何有效字元的字串。字串資料順序儲存字串字元的ascll**,並在最後字元後面儲存一個h進位制**全為0的特殊字元,用來標記字串的結束。所以字串常量「1234」在記憶體佔5個位元組,而空字串只佔一個位元組。

字串中的字元也可以是轉義字元。

5.符號常量

為了提高程式的可讀性,常量可以用以下形式命名:

# define 識別符號 常量

其中的識別符號也稱作符號常量,這裡的常量是前面所述的某種常量、或是程式中前面定義的符號常量。例如:

# define maxn 100

7樓:匿名使用者

一、基本型別

1、整形型別:int ,short int,long int,long long int(c99),char,bool

2、浮點型別:float ,double,雙精度浮點型(float_complex,double_complex,long long_comples)

二、列舉型別 enum

三、空型別 void

四、派生型別

1、指標型別 *

2、陣列型別

3、結構體型別 struct

4、共用體型別 union

5、函式型別

8樓:x孤君獨戰

c語言資料型別,菜鳥教程,幫助你快速瞭解c語言

9樓:匿名使用者

基本型別:

char(字元型)

int(整型)

float(單精度型)精確到6位數

double(雙精度型)精確到12位數

void (空值)0無值

聚合型別:

陣列、指標、結構、共用體(聯合)、位域和列舉

10樓:匿名使用者

整形 int

字元型 char

雙精度型 double

單精度型 float

還是加上無符號幾個

unsigned char

unsigned long int

long int

unsigned short int

short int...

11樓:火駒

c語言有五種基本資料型別:字元、整型、單精度實型、雙精度實型和空型別。儘管這幾種型別資料的長度和範圍隨處理器的型別和c語言編譯程式的實現而異,但以bit為例,整數與cpu字長相等,一個字元通常為一個位元組,浮點值的確切格式則根據實現而定

c語言還提供了幾種聚合型別(aggregate types),包括陣列、指標、結構、共用體(聯合)、位域和列舉

除v o i d型別外,基本型別的前面可以有各種修飾符。修飾符用來改變基本型別的意義,以便更準確地適應各種情況的需求。修飾符如下:

• signed(有符號)。

• unsigned(無符號)。

• long(長型符)。

• short(短型符)。修飾符s i g n e d、s h o r t、l o n g和u n s i g n e d適用於字元和整數兩種基本型別,而l o n g還可用於d o u b l e(注意,由於long float與d o u b l e意思相同,所以a n s i標準刪除了多餘的long float)。

嵌入式c語言的定義問題,謝謝,嵌入式C語言的定義問題,謝謝!

字元型在機器裡面也是以二進位制儲存的。所以 i 0 不一定就是數學意義上的零。typedef 是預定義的關鍵字,意思定義一個 int8u 來代替 unsigned char,只是為了寫程式和讀程式的方便,沒有其他意義。char 和int本身就沒有什麼區別,只是長度不用而已。在內部都是以二進位制儲存。...

c語言資料型別如何轉換C語言資料型別如何轉換?

不是有強制型別 轉換嗎?強制型別轉換 強制型別轉換 當運算元的型別不同,而且不屬於基本資料型別時,經常需要強制型別轉換,將運算元轉化為所需要的型別。強制型別轉換具有兩種形式,稱為顯式強制轉換和隱式強制型別轉換。1 顯式強制型別轉換 顯式強制型別轉換需要使用強制型別轉換運算子,格式如下 type 或 ...

關於c語言資料型別的問題,關於C語言資料型別的問題

因為有的資料比較長,比如1111111111111111,這樣用int就存不下了,要用長整型來儲存了 可能強制轉換時要用到吧 這只是我的觀點 long long hello 1 2147483647 cout hello endl cout int max endl hello右邊表示式 是1 in...