程式設計小技巧

2021-05-26 11:14:34 字數 711 閱讀 3640

#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,則成功...