2011年3月30日 星期三

重要,C語言常被遺忘的「跳脫字元」用法

新手或一般沒常寫C語言巨集的人,應該都以為「倒斜線」只能用於字串中輸入無法顯示的ASCII字元(如換行字元或TAB字元),或者是16進制字元,其實跳脫字元在用於「非字串區域」以外的地方仍然還有另一個功能,就是分段排版,如下:

轉貼自 寫程式為何要內縮
#define FOR(start, end, exp) \
{ \
  for (int n__ = start; n__ < end; ++n__) \
  { \
    (exp); \
  } \
}
因為#define 只能寫成一行,所以必須用跳脫字元排版,此例子常見於Linux內核(kernel)以及驅動程式中,但C++中討厭巨集所以幾乎很少用。

\跳脫字元

常見用於巨集的函數排版,以及字串的跳脫換行或非ASCII能顯示字符插入,此處應該是指跳脫換行的功能。

參考來源:

"and possibly a \ escaping the newline"
- Auto-newlines - CC Mode Manual (在「Google 網頁註解」中檢視)

自動換行觸發字符

自動換行觸發字符有,左右括號,冒號,分號以及逗號。

參考來源:

"when you type a left or right brace, a colon, a semicolon, or a comma."
- Auto-newlines - CC Mode Manual (在「Google 網頁註解」中檢視)

2011年3月28日 星期一

分號及逗號字符

啟動時自動縮排,當自動換行模式啟用,將可能插入單行或多個新行,此外當類別或結構的右括號產生換行時可設定清除來清除括號和分號之間的換行字符。

參考來源:

";,"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

冒號字符

啟動時縮排,當自動模式啟用,將可能自動插入單行或多個新行。

參考來源:

":"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

2011年3月27日 星期日

大括號字符

啟動時動縮排,當自動換行模式啟用,將可能自動插入單行或多個新行

參考來源:

"{}"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

括號字符

觸發條件是,輸入左括號或右括號時,自動跟函式名稱對齊縮排。

參考來源:

"()"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

模版宣告,串流運算子

啟動條件是模版宣告情況或串流運算子呼叫情況,將會自動漢城是對齊縮排。

參考來源:

"<>"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

區塊註解運算子,行註解運算子

啟動的話當前面第一及第二個字元是是註解運算子,將會自動和程式對齊縮排。

參考來源:

"*/"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)

2011年3月26日 星期六

預處理器字符

當c-electric-pount-behavior 設成 alignleft 時,插入#且此行左邊無「非空白字元」時,自動將將此行左邊空白字元清除且貼齊於視窗左邊。

參考來源:

"#"
- Electric Keys - CC Mode Manual (在「Google 網頁註解」中檢視)