c語言巨集定義字串問題,C語言巨集定義字串問題

2021-03-03 20:58:51 字數 2196 閱讀 7825

1樓:

用拼接符可以做到

#define string(arg) "aaaaaaa"##arg##"bbbbbbbbbb"

但arg必須是個常量,不能是變數

c語言,將數字和字串拼成一個字串。用巨集來做,用api誰都會!

2樓:匿名使用者

巨集定義字串拼接可以使用巨集運算##,即 #define strcat(x,y) x##y。

##運算子可以將兩個記號版(例如識別符號)權「粘」在一起,成為一個記號。如果其中一個運算元是巨集引數,「粘合」會在當形式引數被相應的實際引數替換後發生。考慮下面的巨集:

#define mk_id(n) i##n下面的宣告使用mk_id建立了3個識別符號:

int mk_id(1), mk_id(2), mk_id(3);

預處理後宣告變為:

int i1, i2, i3;

例如:#include

#define strcat(x,y) x##yint main()

/*執行結果:

10 20*/

3樓:匿名使用者

巨集定義bai有兩種運算

符du,#和##

#運算子將一zhi個巨集引數轉換成為字元dao常量eg: #define print_int(x)專 printf(#x " = %d\n",x);

##運算子將兩個識別符號「粘」屬在一起,成為一個識別符號eg: #define mk_id(n) x##n <==> mk_id(1) = x1

然後你把這兩個巨集結合起來,就達到你的目的了,而且可以很靈活的隨意使用下面是一種可能例子,你可以根據需要修改

#define haha(x,y) (#x##y)x代表你要輸入的數字,y代表字串

c語言的巨集定義,字串連線

4樓:匿名使用者

#define adc_spi 5

#define ***b_spi_info(name) "spi/"##name

用##替換#

c語言巨集定義字串引數要把引數轉化成字串再加引號才是引數麼? #define print(for

5樓:匿名使用者

format是print(format,value) 裡的引數,#的作用是標識format不是以字串方式輸出,而是以其替換的方式輸出。巨集定義裡面的引數輸出格式。

6樓:

printf函式的格式控制符就是在前面那個字串裡取的,所以他是一個字串必然也是格式控制符,我覺得應該是因為巨集的關係所以引入的#號來使巨集引數字串化。

c語言中為什麼用巨集定義一個字元常量(一個字母)可以賦值給字元變數,

7樓:匿名使用者

1、因為巨集定義實質是一種替換,雖然看起來是字元,實際上最終是被替換成其他常熟或者值。

2、巨集定義中的識別符號都採用大寫,這是程式設計中一種約定俗成的習慣:

1)巨集替換不做語法檢查,所以在使用的時候要格外小心2)巨集替換通常在檔案開頭部分,寫在函式的花括號外邊,作用域為其後的程式,直到用 問好

3)# u n d e f 命令終止巨集定義的作用域4)不要在字串中使用巨集,如果巨集名出現在字串中,那麼將按字串進行處理.

8樓:匿名使用者

因為巨集是一個簡單替換,所以c語言中用巨集定義一個字元常量(一個字母)可以賦值給字元變數。實質是在編譯之前會把巨集替換掉,然後再編譯。

例如:#define a 5

void main()

在編譯之前a已經被替換成5了,所以就可以賦值給num。

9樓:匿名使用者

漢字根據編碼方式不同,所佔的大小2~4個位元組不等,漢字賦值給字元變數,只顯示第一個位元組,出問號就不奇怪了

用漢字賦值給字元數陣列然後在顯示的話,一定要考慮編碼方式問題,你的終端支援哪種就選擇哪種,否則亂碼

10樓:匿名使用者

#define namehello "wendy"

#include

#include

void main()

11樓:匿名使用者

c裡面不支援漢子,你用vc++6.0試試,那個可以顯示漢子

在C語言巨集定義中,用識別符號來表示字串

巨集定義 define n 100 是預編譯命令,它的意思是 對下面程式中出現的 token n 作字元替代,把所有的 n 用專 100 替代後 再進行 編譯屬。這裡的 100 是一串字元,而不叫 字串 字串 是 術語,指的是 c c 中的 字串常量 即雙引號括起來的一串字元 加 一個不可見的 字串...

C語言符串問題,C語言 字串問題

因為在編譯的時候,這兩個陣列的空間是已經分配好的,而這兩個陣列的定義是在相鄰的,所以分配的空間也是連續的,因此你在輸入超過陣列i長度的字元時,會覆蓋到陣列j的空間。在vc裡編譯的時候,後面的變數存放在前一個變數的前面,比如 include stdio.h main 在我的機器上輸出是1245056,...

C語言中什麼是字串,C語言中如何定義字串?

加了 符號的字元,例如 c 3 在c語言中,由零個或多個字元組成且通過雙引號括起來的有限序列就叫字串.例如 hello world 我愛中國 a 123456 等等.另外字串在記憶體中是由字元型陣列來儲存的.且在儲存的時候多加 0 表示字串已經結束.例如 char string 12 hello w...