C語言中bool是佔用節嗎?如果只佔用一位怎麼做呢

2021-08-16 09:00:09 字數 2198 閱讀 2702

1樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如:test.cpp。

2、在test.cpp檔案中,輸入c語言**:bool a;printf("%d", sizeof(a));。

3、編譯器執行test.cpp檔案,此時成功列印出了bool型別的位元組數是1。

2樓:匿名使用者

c語言最小的佔用單位就是1位元組 怎麼可能一位

哪怕你打1 0也都要佔用1個位元組

3樓:匿名使用者

ls的朋友,其實 m_a 和 m_b的卻只是各佔了一個位

不過事實上他們還是佔了一個位元組,只是這個位元組剩下的6bit沒有用而已==

4樓:匿名使用者

位操作可以。winapi好多常數就是用1位.

5樓:匿名使用者

c中bool佔一個位元組,如果想只佔用一位,可以參考:

typedef struct abc

abc;

在這個struct種,兩個bool成員各只佔用1bit。

6樓:匿名使用者

如果您使用的是vc

對bool的定義是

typedef int bool;

可見是佔四個位元組

為什麼要這樣呢

int型變數所佔的空間永遠是與作業系統有關的,在32位的作業系統中int型佔4個位元組,所以cpu在執行指令時從記憶體中取資料也是一次最少取4個位元組,如果bool佔一個位元組的話,cpu就要先取4個位元組,再用“與”運算與掉三個位元組,這樣效率就低了

您要是想控制一位 沒有對應的資料型別 一般通過位運算和位操作來完成

7樓:西冷鎮

標準的c其實沒有bool型別

c++才有bool,但也不是隻佔一位

c++中char和bool型別都佔一個位元組,但是……

8樓:匿名使用者

資料bai

型別有兩層意思

du :1.規定資料zhi的長度;2.規定在資料上dao能進行什麼操作

例:專 int型別,長度為32位,能進行+ - * / % 操作屬。bool型別,長度為8位,只能進行異或操作。 char型別,長度為8位,能進行+ - * / %和字元操作。

那編譯器是怎麼區分char型別跟bool型別的?

c/c++的編譯器中有一個變數表,表的關鍵欄位有(資料型別,變數名,首地址,值),每宣告一個變數,就把這個變數的相關資訊填進表中

9樓:娜莉china小

1.規定資料的長度bai;2.規定在資料du上能進行什zhi麼操作。

例:dao int型別,長版度為32位,權能進行+ - * / % 操作。bool型別,長度為8位,只能進行異或操作。

char型別,長度為8位,能進行+ - * / %和字元操作。

c/c++的編譯器中有一個變數表,表的關鍵欄位有(資料型別,變數名,首地址,值),每宣告一個變數,就把這個變數的相關資訊填進表中。

10樓:手機使用者

我正在這寫編譯器構抄建動態字元bai串的問題呢,正好看到你du的問題。

簡單來說編譯zhi器會在編譯過程dao中維護一個符號表,這個符號表中不僅有你定義的資料中的內容,還包括資料的型別,資料儲存地址,返回值型別資訊,資料引數資訊(這個是記錄陣列或字串長度的)。所以不會弄混

11樓:泗幸

int 看cpu和平臺;

char一般佔8位;

bool一般佔8位;

short一般佔16位;

long一般佔32位;

12樓:豬頭或火寶寶

bool型就兩個取值 ture和 false

char 雖然也是佔一個位元組, 但取值可以不同。

還有就是他們都是c/c++的內建資料型別,就是他們都是c/c++自己定義的型別,關於如何區分那我就不知道了!!

13樓:匿名使用者

從定義來區分.

會顯式的指出是char還是bool

14樓:破空大巫師

char 中儲存字元,全域性變數初始為char(0)

bool 中存0或1,全域性變數初始為數字0

C語言中0349是常量嗎

c語言中0349不是乙個合法的常量。以0開始的數字,表示是乙個八進位制數,但八進位制數的每乙個字元都不大於7的。不是,0開頭,說明是八進位制數,八進位制數里沒有9出現 西遼人為什麼簞食壺漿,以迎蒙古大軍 1反抗屈出律 2蒙古軍中的許多契丹人肯定也起了溝通作用。3大石林牙早年在蒙古高原召集七州十八部,...

c語言中,cpp是啥意思,c語言中cpp是啥意思嗎

c語言和cpp是兩個不同的概念。c語言一 般指標準的c程式語言,ansi c。而cpp是c語言基礎上的擴充套件,即回所說的答c 語言。其在c的基礎上,增加了類的概念,並引入了引用,過載,多型的理念,使面向過程的c語言進步到物件導向的c 語言。同時c 語言完美相容了c語言。cpp的 為,c 的英文寫法...

在c語言中for是無限迴圈嗎,c語言求大神解釋for為什麼是無限迴圈的

是迴圈,但不是無限呀,肯定還有個except然後結果就出來了 是無限迴圈 也可以用while 1 更直觀 c語言 求大神解釋 for 為什麼是無限迴圈的?該函式等同於while 1 由於執行for迴圈for 初始條件 判斷條件 結束時執行 的判斷條件沒寫,意味著判斷結果始終為真,沒有跳出迴圈的契機,...