#define conn(x,y) x##y
#define tochar(x) #@x
#define tostring(x) #x
x##y表示什麼?表示x連線y,舉例說:
int n = conn(123,456); 結果就是n=123456;
char* str = conn("asdf", "adf")結果就是 str = "asdfadf";
怎麼樣,很神奇吧
再來看#@x
,其實就是給x加上單引號,結果返回是乙個const char。舉例說:
char a = tochar(1);結果就是a='1';
做個越界試驗char a = tochar(123);結果是a='3';
但是如果你的引數超過四個字元,編譯器就給給你報錯了!error c2015: too many characters in constant :p
最後看看#x,估計你也明白了,他是給x加雙引號
char* str = tostring(123132);就成了str="123132";
#pragma warning(disable:4786)
#pragma warning(disable:4251)
#pragma warning(disable:4273)
//上面這三行是為了去掉使用stl過程中容易出現的一些警告,注意要放在stl包括檔案的前面才起作用
程式設計小技巧
1.如何通過輸入一組任意長度的數字序列?char inchar n int num n int i 0 int len 0 scanf s inchar len strlen inchar printf len d len for i 0 i 2.scanf gets 與getchar 的區別 ge...
程式設計小技巧
1 判斷奇數 if n 0x1 或用用 x 2 0,不要用 x 2 1,因為x可能是負 數。2 在判斷兩個浮點數 a 和 b 是否相等時,不要用 a b,應該判斷二者之差的絕對值 fabs a b 是否小於某個閾值,例如 1e 9 3 用 char 的值作為陣列下標 例如,統計字串中每個字元出現的次...
程式設計小技巧
1.判斷乙個自然數是否是某個數的平方?其實就是判斷這個數一定是奇數相加的 由於 n 1 2 n 2 2n 1,1 2 1 1 2 2 1 2 n 1 注意到這些項構成了等差數列 每項之間相差2 所以我們可以比較 n 1,n 1 3,n 1 3 5 和0的關係。如果大於0,則繼續減 如果等於0,則成功...