C/C++的source code可以用ISO 646]而不是ASCII編寫,但有些C/C++的字元不在ISO 646裡,像是{, }, [, ], #, \, ^, |, ~等等,因此C/C++使用一些macro來代替這些無法使用的字元。
不過還是建議使用!, &, |等ASCII字元,而不是用這些macro。
以下macro在 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 環境測試過可以使用
Operator
在C中,需要#include <iso646.h>以使用這些macro。C++則是直接作為保留字可以直接使用,不過還是保留這個header並改名成<ciso646>,不過裡面是空的,所以include這個沒什麼作用。
|
|
and | && |
and_eq | &= |
bitand | & |
bitor | | |
compl | ~ |
not | ! |
not_eq | != |
or | || |
or_eq | |= |
xor | ^ |
xor_eq | ^= |
Punctuator
在C或C++都可以直接使用。
|
|
{ | <% |
} | %> |
[ | <: |
] | :> |
# | %: |
## | %:%: |
參考資料
後記
會打這篇是因為看到有大一新生上計概課的時候是用"not a"而不是"!a",雖然不知道他是真的知道可以這樣用還是賽到的,過我還是好奇查了一下。如果我這篇的內容有錯或是有問題,可以在底下留言區討論。至於之後會不會有這種文章就再看看囉XD 有機會一定