成果演示:氣泡排序
需使用gcc編譯器
|
|
雙字符組(Digraph)
GCC預設忽略三字符組(trigraph)1,需使用嚴格符合模式-std或-trigraphs選項。
經實測,平台均無啟用,但可以使用囊括於C99(1994)標準中的雙字符組(digraph)。
| 符號 | 雙字符組 |
|---|---|
[ |
<: |
] |
:> |
{ |
<% |
} |
%> |
# |
%: |
不同於三字符組在源文件中都會被預處理器替換,雙字符如果出現在字符串字面值(quoted string)、字符常量、程序注釋中將不被替換。2
雙字符組的替換發生在編譯器對源程序的tokenization階段(即識別出關鍵字、標識符等,類似於自然語言的「斷詞」),僅當雙字符組作為一個token或者token的組成部分時(如%:%:被替換為預處理運算符##),雙字符組才被替換為單字符。
g++預設支援雙字符組替換。但Microsoft Visual C++不支援。
替代標記(Alternative Tokens)
C++有內建以下11個額外運算子的關鍵字,而C則定義於標頭檔<iso646.h>。
| 符號 | 關鍵字 |
|---|---|
&& |
and |
| |
bitor |
|| |
or |
^ |
xor |
~ |
compl |
& |
bitand |
&= |
and_eq |
|= |
or_eq |
^= |
xor_eq |
! |
not |
!= |
not_eq |
:::warning
如果要在Microsoft Visual C++編譯器使用上述關鍵字,必須包含標頭檔<ciso646.h>,否則編譯報錯。如「error C2065: ’not’ : undeclared identifier」。而g++編譯器就不需要。3
:::
型態別名
使用 signed 來取代 int。
更多請參考:資料類型範圍(MSVC)。
其他迷惑行為
兩數交換
|
|
兩數不相等
|
|
字元與個位數轉換
|
|
陣列取值
|
|
趨近符號
|
|
逗號運算子
|
|