關於c語言巨集定義輸出,關於C語言巨集定義輸出

2022-02-26 23:02:09 字數 2271 閱讀 4315

1樓:

巨集定義就是字串代替,先把整個東西代替進去 。

'a' < ( s[++i]) && ( s[++i]) < 'z' ? ( s[++i]) -'a' + 'a' : (s[++i] )

?: 這是三目運算子,從左到右。

先是'a' < s[++i] 這裡是 'a' < s[1] = 'b' 成立

接下來是 s[++i] < 'z' 這裡是 s[2] = 'c' < 'z' 也成立 。

所以是, ( s[++i]) -'a' + 'a' 這裡其實就是小寫轉大寫

這裡是, s[3] = 'd' - 'a' + 'a' 。

結果 就是d 了。。。

這就是巨集定義最容易出錯的點。

2樓:

表示式裡面str[++i]被運算了3次,最後i=3;所以是d

3樓:福州吧壹母

巨集定義,首先,它是定義一個變數並已經初始化了,就像你說的,將a定以後初始化為1000,作用域是整個檔案(如果沒有#ifndef和#endif);但是不包括字串常量和字元常量的裡面的a

是否可以解決您的問題?

c語言巨集定義什麼結果輸出

4樓:風若遠去何人留

3 x=3*(a+b(7))

=3*(a+((a+1)*7))

=3*(3+((3+1)*7))

=3*(3+28)

=3*31

=93選b

4 null定義為(void*)0 也就是值為0的指標於是 以%d輸出 那麼還是0選b

c語言vs2013下,巨集定義的值如何輸出啊。

5樓:閆鵬程程

巨集定義完成之後 針對你這個問題 以後所有的5 都可以用inum代替 所以數字5怎麼用,那inum就可以怎麼用 巨集定義只是替換作用。希望能幫到你

6樓:匿名使用者

除了應該寫英文的括號與引號外,這個語句不會出任何問題啊

c語言中 如何對「輸出格式」做巨集定義

7樓:奮鬥的懷超

#define format "~~~~"(~~~代表你要輸出的格式)

輸出的時候用printf(format,~,~,...)此處~~代表你要輸出的變數

8樓:

#define print(width,type,value) printf("%"#width#type,(value))

#define bufprint(buf,width,type,value) sprintf(buf,"%"#width#type,(value))

應用:print(-10.1,f,10.25);

print(3,d,10);

print(08,x,100);

print(#08,x,100);

print(,x,100);

print(16,s,"hello, world!");

9樓:淺夏微涼耶

void main()

關於c語言巨集定義的問題

10樓:匿名使用者

錯誤原因:定義巨集的時候 #define print(a); 多了一個分號 一直到下面**的時候巨集自動幫你替換成 ;printf("the end"); 那麼根據for迴圈的規律,不加{}的情況下,它只執行 printf("the end"); 所以不一樣,第2個之所以只輸出一個其實那是在for迴圈結束後才執行的 注:巨集定義是不需要 ; 來結尾的要加也是在後面的**上加,而不是在巨集名後面加..。

11樓:匿名使用者

c語言的字元是用ascii碼錶示的。每一個字元對應一個整數。同樣的,每一個整數也對應一個字元。

a~z對應66~90。a~z對應97~122的數。ch大於a小於z時讓它 a-a,正好可以把它的ascii碼變為a~z區間內的整數。

12樓:匿名使用者

"#define print(a); "它的最後好像是不能加分號吧,你去掉分號試試看

13樓:匿名使用者

#define print(a);把;去掉

c語言巨集定義計算問題,C語言巨集定義計算問題

i f 4 4 f 2 2 4 4 4 4 2 2 2 2 28如果 define f x x x i f 4 4 f 2 2 4 4 4 4 2 2 2 2 64 define f x x x i f 4 4 f 2 2 這樣i f 4 4 f 2 2 4 4 4 4 2 2 2 2 24 8 3...

C語言巨集定義意思

巨集定義是c語言提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集 將巨集名替換為字串。掌握 巨集 概念的關...

關於C語言中陣列的定義,C語言中如何定義陣列

一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...