行內作業

C_CG::Operation::Inline 內容可讓您產生基本作業及作為巨集的廣域函數。 巨集是定義在擁有者物件的規格檔案中。 前置處理期間,會使用針對巨集所指定的未解譯文字來取代行內的作業呼叫。

只有 Inline 內容設定為 in_header 的基本作業及廣域函數,才能產生作為巨集。Inline 內容對建構子和解構子沒有作用。行內作業沒有檢測。

擁有者物件的規格檔案中定義巨集如下:

#define OperationName(ArgumentList) \

傳回類型及引數類型或作業被忽略。巨集的每一行結尾是 "\"。 大括弧("{" 和 "}")不會在使用者程式碼周圍產生。您可以使用大括弧撰寫會傳回值的簡短巨集。 下列範例顯示巨集定義:

(#define isEqual(arg1, arg2) (arg1)==(arg2))

來回轉換巨集時,會在行結尾處加上反斜線 (" \")。下一次產生程式碼新增第二個反斜線 " \ \",會導致編譯錯誤。 必須手動移除多餘的反斜線。

強調顯示錯誤會顯示呼叫作業(巨集呼叫)行。

下列範例是針對物件 A 的基本作業 op() 產生程式碼。作業的 Inline 內容設定為 in_headerA 的規格檔案 (A.h) 中產生巨集定義。這個作業會在結束之前呼叫廣域函數 Global_F(),此函數也可以在行內產生:

#define A_op(me)            \
    /*#[ operation op() */   \
    int i;                   \
    for(i = 0; i < 3; i++) { \
        printf("LOOP\n");     \
    }                        \
    Global_F();              \
/*#] */

回饋