boiz 的 C 備忘錄(一)

2021-03-31 08:56:58 字數 822 閱讀 8964

本文主要是記錄一些初級的但是有時候我自己容易忽略或者忘記東西,僅作備忘錄之用。

1)、銜接符 /

/ 在c++中可以作為銜接符(忘了規範的術語是不是這麼叫了, 汗自己乙個~),例如:

//this is memo/

this is memo too

上面兩行在c++中,編譯器會認為是一行。

不過/一般只在巨集定義中使用,因為如果是字串,那麼別寫分號就行,如:

char *s = "how "

"are "

"you?";

如果是一般的語句,那麼就直接換,比如:

int sum = i +

j;2)##

## 叫做指令貼上符,它的英文術語叫做token-pasting operator,主要在巨集定義中使用。使用例子如下:

#define paster( n ) printf( "token" #n " = %d", token##n )
int token9 = 9;

用如下方式呼叫巨集,

paster( 9 ); //輸出: taken9 = 9

上面的巨集此時等價於

printf( "token" "9" " = %d", token9 );

結果就是:

printf( "token9 = %d", token9 );

3)、除法操作符

/   :除號,注意整數相除與浮點數相除的差別。如果3 / 2,結果=1。3.0 / 2 的結果則等於1.5。

% :求模操作符, 5%3 = = 2

第一部分先寫這麼多,以後再整理其他 的。

boiz 的 C 備忘錄(二)

1 c 函式引數入棧順序 從右到左 下面的例子用來驗證c 函式引數入棧順序 void test int i1,int i2,int i3 printf i1 d,i2 d,i3 d n i1,i2,i3 int i 0 test i,i,i 則輸出結果為 i1 3,i2 2,i3 1 2 乙個有趣的...

C 基礎備忘錄

1.decimal 型別呼叫tostring 方法後沒把末尾的0去掉的解決辦法 例子 decimal?money convert.todecimal 10.8950 string moneystr money.value.tostring 結果在同一臺機子,兩個專案裡面會出現兩個不同的結果。結果一 ...

c 備忘錄模式

結構圖 memento類 儲存狀態的容器 複製 如下 class memento public memento string state caretaker是儲存memento類 複製 如下 class caretaker originator類就是需要儲存狀態的類 複製 如下 class orig...