關於C語言巨集定義的問題,C語言的巨集定義問題

時間 2021-08-30 10:26:27

1樓:匿名使用者

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

2樓:匿名使用者

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

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

3樓:匿名使用者

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

4樓:匿名使用者

#define print(a);把;去掉

c語言的巨集定義問題

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

5樓:莊政警

要使得巨集引數在替換後出現雙引號,不能在定義巨集的時候直接用雙引號,而是在引數前加個"#",這樣定義:

#define zopen(y,d,x) if((y=fopen(#d,#x))==null) printf("error\n")

還有使用時不要忘了結尾的分號

6樓:亢梅風恭仙

c語言的字元是用ascii碼錶示的。每一個字元對應一個整數。同樣的,每一個整數也對應一個字元。a~z對應66~90。a~z對應97~122的數。ch大於a小於z時讓它

a-a,正好可以把它的ascii碼變為a~z區間內的整數。

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

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

7樓:匿名使用者

##表示連線符, struct(type)相當於struct_tag_type。 如果#define時直接寫作為type則能做為引數使用。

你寫出的struct巨集使用之前, 應該定了struct_tag_***xx之類的結構體.

假設你申明瞭一個結構體: struct_tag_point, 定義了一個物件語用應用:

struct_tag_point var;

使用struct巨集後為

struct(point) var;

拆分巨集之後等價於

typedef struct_tag_point point;

point var;

對於你的問題 type 完全可以代替 struct _tag_##type???應該是不可以的。否則如上示例拆分拆分巨集之後等價於:

typedef point point;

point var;

8樓:

在巨集定義中"#"有特殊的用法,

當巨集引數是另一個巨集的時候 需要注意的是凡巨集定義裡有用'#'或'##'的地方巨集引數是不會再

一般用法 我們使用#把巨集引數變為一個字串,用##把兩個巨集引數貼合在一起.

9樓:匿名使用者

巨集定義就是用一個你熟悉的符號替代原來的

c語言中巨集定義的問題

10樓:愛衝吧

p1代提了3.14, 3.14是一個常量,當然p1也是常量了,不是你說的字串

11樓:

巨集定義的是什麼型別,用的就是什麼型別,字串定義要加「」,還有啊,你的**就這幾行就有很多的問題啊你看看你這裡有沒有問題?

12樓:匿名使用者

這理解錯了吧~誰說3.14是字串的

C語言中的巨集定義如何使用,c語言巨集定義如何用?用巨集定義有什麼優點?

正確的完整輸出 3 個整數的程式結構應該按照如下寫法 define n 3 include int main for i 0 i n i 迴圈輸出整數陣列 a 中的 3 個數字,特別要注意 i 必須要寫成 i n,而不能夠寫成 i n,否則的話,就會產生越界錯誤。printf d t a i pri...

c語言寫標頭檔案定義巨集的問題,C語言寫標頭檔案定義巨集的問題

兔子和小強 ifndef a h define a h endif 就是如果沒有定義a h那麼就定義a h,並執行.這樣就避免了重複include的問題。標頭檔案叫file 那麼一般 ifndef file h 這是c的風格,也可以取一個唯一的其他識別符號 預編譯 內的防止重複編譯就是這樣做的,比如...

關於c語言函式型別定義問題,關於C語言函式型別定義問題

超級福醬 這個語句主要是用的c語言的等號算符 c語言裡面等號可以看做一個函式,它的返回值是右值。比如int i,j,x i j 5 這條語句除了賦值以外還有返回值,返回值是5所以可以這麼寫 x i j 5 這裡x就等於5了。所以 語句 if x 0 就可以簡寫為 if i j 5 0 另外,c裡面字...