萬事開頭難,幹就完事兒了

2021-09-24 05:37:16 字數 1494 閱讀 6212

總結今天在學習c語言巨集定義的時候發現了乙個問題。定義是這樣的:

#define sum(a, b) (a + b)

#define sharp(a,b ) (a##b)

我們都知道c/c++的巨集定義僅僅是進行字元替換。

1.sum(a,b) 會將代入,然後求和;

2.sharp(a,b)會將a b組合在一起,成為乙個字串;

然後進行了以下的**測試巨集定義中的"+「和」##"的用法:

void testmacro()

這段**執行後的結果是:

在上面的 sum(『ab』, 『ef』) 中可以發現,在進行巨集替換的時候,ab被替換成了乙個數字,ef也被替換成了乙個數字。然後做了乙個簡單的測試。**如下:

void testintnum()

果然,輸出結果是這樣的:

以前好像從來沒遇到過c/c++中的int型別是這樣初始化的,因為我用的是vs2015測試的,所以就想找個別的ide/編譯器試試。於是就用了mingw的編譯器試了一下。

用的stdio和.c的字尾,看樣子是不行的。

於是。試一下iostream和.cpp的實現

可以看出c++的形式是可以的,不過編譯器報了乙個警告。

以前找資料總是習慣於csdn幾下就找到了,今天也是提起幹勁兒開始了自己寫了。所以,共同分享!共同進步!

測試**

void testintnum2()

; int nval = 0;

cout << hex;

memcpy(&nval, carr, sizeof(nval));

cout << "use memcpy" << endl;

cout << " addr of nval: 0x" << &nval << endl;

cout << " value of nval: 0x" << nval << endl;

cout << "direct assignment" << endl;

nval = 'abcd';

cout << " addr of nval: 0x" << &nval << endl;

cout << " value of nval: 0x" << nval << endl;

}

萬事開頭難

每一次作為觀察者,都覺得別人做某事是如何順手拈來 然而仔細看看自己,卻覺得很多事情,遠不是自己想象的那樣簡單,甚至力不從心。我們都有自己乙個不凡的理想,也許到現在還在為小時候的某個願望努力著 也許現在所做的早已經不是自己想要的了,時間改變了這一切,也淡忘了自己當初的很多想法。所以更多的時候,我已經不...

萬事開頭難

今天終於決定寫點什麼了,估計有很多人和我一樣,天天看別人的部落格,自己有部落格但是沒有寫,主要是不知道要寫些什麼。我也是如此。今天發生了一些事情,想記錄下來,就想到了我還有部落格,呵呵。部門的人員總是有很多人做事不動腦筋,就在死做事,今天評審bug列表,有乙個bug是顯示的列的資訊和編輯的資訊不一致...

萬事開頭難

2020年經歷了新冠的肆虐,一年的時間匆匆流逝。回首望去,曾經定下的計畫好 像也沒有完成多少。幸運的是後半年經歷了一些可謂是重塑三觀的事件,也算是在一 些方面完成了脫胎換骨的成長。過自己不想要的生活,需要勇氣 過自己想要過得生活,不但需要勇氣,還需要 人最大的痛苦就是無法跨越 知道 和 做到 的鴻溝...