C宏定義中的 #,##,#@

來源:互聯網
上載者:User

標籤:宏定義   define   #   ##   

宏定義中會出現#xxx ,A###B,以及微軟獨自特有的#@xxx。分別解釋。


1 define SB(x) #x
它的作用是把輸入的東西轉換為字串
string str = SB(123);


2 define BB(x) UXX##x
這個是個符號串連的作用,把UXX(隨意的跟符號x串連成一個新的符號,這裡說的符號就是變數的意思
int BB(1);
U1 = 100;


3 define CB(x) #@x
作用會是把x的最後一個字元轉換成字元,這個是Windows專屬的。
char b = CB(14c2);

最最終的執行個體程式如下:
#include <iostream>#include <fstream>#include <string>#include <stdio.h>using namespace std;#define H1 123#define SB(x) #x//translate to a string#define BB(x) U##x  //produce a new symbol#define CB(x) #@x//make the last to a charvoid main(){int x = H1;//cout<<x<<endl;ofstream fout("1.txt");fout<<x<<endl;fout<<"1234"<<endl;fout.close();FILE* fp = fopen("2.txt","w");fwrite(&x,4,1,fp);fprintf(fp,"%d",x);fclose(fp);string str = SB(123);std::cout<<str<<endl;int BB(1);U1 = 100;cout<<U1<<endl;char b = CB(14c2);}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.