C 中優化BOOL 變數的宣告 怎麼整

2025-03-15 19:05:09 字數 4360 閱讀 7474

1樓:匿名使用者

通常我們會這樣宣告bool 變數: class cmyclass ; 考慮到bool 變數在win32 下其實是乙個int ,佔穗明4個位元組,那麼上面8個bool變數就會佔去 32個位元組。 typedef int bool; /bool takes 4 bytes 其實,我們可以改猜氏告變bool變數的宣告來使之只佔乙個bit:

class cmyclass ; 上面的**中,每個bool 變數只佔了1個位元(bit), 那麼上面8個bool變數就會佔去1個位元組。 記憶體節省了32倍!!!不過從另外一方面, cpu 在處理這些bit型別的bool變數的時候, 需要做位運算來把其中的值取出來, 所以會額外消耗cpu資源。

使用的時候需要綜合考慮記憶體和速度之間關係。 該文章**自無核握憂考網。

2樓:匿名使用者

bool flag;

if(a>b)flag=true;

elseflag=false;

if(flag==true)cout<<"你做的姿銷是對的/n";

elsecout<<"你做的是錯的/n";

這是變數的bool型,定義後的變數可以被賦值為真或者假,然後再被利用來判斷。

bool correct(int x,int y)if(x>y)return true;

elsereturn false;

int main()

int a,b;

if(correct==true)

cout<<"對了/n";

elsecout<<"錯了/譽棗n";

return 0;

標頭檔案就慶冊拆不寫了。

c++中bool變數 如何取反

3樓:yesyes科

3、然後在器中建立兩個字元型變數x,y。

4、接著使用cout和cin語句,輸入乙個運算元,儲存在變數x中。

5、將獲取的這個運算元進行按位取反運算,這裡使用~表示按位取反運算子號。

6、就可以執行該程式了,輸入乙個數字,進行按位取反運算程式測試。

4樓:逆光薄荷貓

i++其實也是有賦值的,首先把i給暫存器再把i自增1。++i才是沒有賦值的,而且有無賦值其實不重要,不會對你的程式效率有任何影響。這又不是20世紀初剛發明的計算機,多關心演算法和資料結構不要整天鑽牛角尖。

5樓:幽雅奶茶

這根本沒有類比性,只能這樣實現。如果嫌麻煩,在開頭#define一下就好了:#define opstarted started = !started; 不要丟掉分號,只能用大寫。

6樓:匿名使用者

題主的思維就是:我不要你覺得,我要我覺得。

你不要賦值語句,那自己建立乙個程式語言吧(攤手。

7樓:網友

started ^= true;

不過看彙編**沒啥區別。

c++ bool宣告變數 後缺少";"

8樓:網友

bool不是c++型別,是windows api裡的 typedef int bool;

如果是這個問題的話,你可以包含#include ""

或者就用小寫的bool

9樓:網友

c++用分號作為乙個語句的結束,你檢查一下是否缺了分號。

[c++]bool型別變數如何使用?

10樓:許詩文

先說個例子:

環境linux下 gcc編譯器。

#include

#include

#include

int main(void)

/length

bool = 1

a = 1;b =

0;c = 0;d = 1;e =

1其實:有了這個例子就對bool有了一定了解。

bool和bool的區別:

1、型別不同。

bool為int型。

bool為布林型。

2、長度不同。

bool只有乙個位元組。

bool長度視實際環境來定,一般可認為是4個位元組3、取值不同。

bool取值false和true,是0和1的區別如果數個bool物件列在一起,可能會各佔乙個bit,這取決於編譯器。

bool是微軟定義的typedef

intbool(在中)。與bool不同,它是乙個三值邏輯,true/false/error,返回值為大於0的整數時為true,返回值為0時候,為false,返回值為-1時為error。

布林型變數bool

bool是布林型變數,也就是邏輯型變數的定義符,類似於float,double等,只不過float定義浮點型,double定義雙精度浮點型。

布林型變數的值只有 真 (true) 和假 (false)。

布林型變數可用於邏輯表示式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關係運算。

建議:最好別用bool,bool變數可用int代替。

c++中bool型變數如何運用?

11樓:網友

正如下邊的**,bool的變數是true或者false兩種值,是邏輯判斷用的。

bool success = true; // // 如果不成功(success)

if (!success)

std::cout <<"木有成功!" <

c語言中,定義乙個布林型變數如何用,為什麼我用bool定義會報錯?

12樓:假面

c語言中並沒有bool型別變數。這是c++中新增的系統型別。

要在c語言中使用bool型別,可以使用自定義的方式。

1 使用整型做bool型別。

typedef int bool;

或typedef unsigned char bool;

只要是整型,都可以當做bool使用。

2 使用列舉型別做bool型別。

typedef enum

false,true

bool;實際應用中,列舉型別較為普遍。

13樓:p王映棋

如果用c語言,是沒有布林型的,只有c++裡有。

14樓:網友

在c語言標準(c89)沒有定義布林型別,所以c語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法:

巨集定義布林型別。

#define bool int

#define true 1

#define false 0

定義乙個布林變數。

bool flag = false;

15樓:網友

c語言中沒有bool變數,需要自己用列舉定義乙個bool變數:

enum bool ;

這樣的形式就行了。

或者可以更炫點,這麼幹:

#include

typedef enum bool bl;

void main()

其中true和false就是bool型變數。

16樓:

用新的編譯器 或者自己定義一下。

c++如何在類裡面使用函式。bool要怎麼用。是先在標頭檔案宣告?

17樓:育知同創教育

例子:bool 就兩個值,真或者假,通常用來儲存關係表示式或者邏輯表示式的結果。

以前是用 int 來表示真假,大 int 有多個值,所以才規定 0 為假,非零為真,導致對應關係比較麻煩,有了 bool 就方便多了,如果把結果賦值給 bool 型別的變數,他會自動轉換,即把0轉換為假,非零轉換為真。

int a,b;

bool c;

a=1;b=2;

c=a>b;

if(c)/說明a>b

else/說明 a<=b

例子:用於判斷 有時候有利於程式的健全 當然有時候是為了程式有條理,讓程式好寫。

bool isempty() //例如判斷是否為空。

解釋:bool 型的變數時c語言常用的便利之一,就是true和false,其實可以理解兩者就是1和0表示。一般用來判斷函式的執**況,乙個子函式的返回值可以定義成bool值變數。

這樣的話返回值基本上就是表示此函式是否能執行成功。

18樓:物理公司的

bool是基本型別不用宣告,輸入輸出的#include

數學類的#include,..

先包含後使用。

C中,在宣告變數時不賦值和宣告變數時賦值,有什麼區

引用型別宣告變數時賦值可以避免null錯誤,非引用型別會自己增加初始值不管你是否賦值。當然有區別,比如bai 賦值的話變數裡面du就zhi會有值,而不賦值,只是開闢dao了這麼一個空間內 裡面放的東容西是什麼就不知道了,會造成你程式出錯。比如 int a,b,c c a b 這個時候你根本不知道a和...

C 中宣告變數時,系統會在棧上分配記憶體,在程式結束時會釋放

區域性變數放在棧 stack 上,靜態 全域性 動態分配多放在堆 heap 中。動態分配的空間遠遠大於棧上的空間。比如你要裝載一幅圖到記憶體中進行處理,棧是肯定放不下的,只能用動態分配。因此,不要使用太大的區域性陣列,而儘量使用動態分配,最後不要忘了釋放掉。當你的程式需要指定的大小時就需要動態分配,...

c中變數的地址是什麼型別的

變數地址是什麼型別,這是個怪異的問題,表示你沒有理解其基礎.電腦的作業,都是單純的資料回與邏輯答,我們說的十進位制,十六進位制,都只是對同一個數字的不同表達方式,在電腦中都是一樣的.0x30 h 48 d 60 8 110000 2 變數型態,指的是,電腦對某位置的處理方式,會依照宣告的型態採取不同...