0
隨着當一些定義,定義他們以這種方式定義的CMake:兩種不同的CMake difinitions
add_definitions(-DMY_DEFINITION)
有時我看到人們在以不同的方式定義:
add_definitions(-DMY_DEFINITION=1)
然後我的問題它們在生成的C++項目中有什麼區別。謝謝。
隨着當一些定義,定義他們以這種方式定義的CMake:兩種不同的CMake difinitions
add_definitions(-DMY_DEFINITION)
有時我看到人們在以不同的方式定義:
add_definitions(-DMY_DEFINITION=1)
然後我的問題它們在生成的C++項目中有什麼區別。謝謝。
這不是真的與CMake相關,而是與C/++編譯器更相關。 在代碼中的差異之間是相同的:
#define MY_DEFINITION
和
#define MY_DEFINITION 1
實際上,有沒有需要定義的值的C/++宏,如果你想的唯一一件事就是知道如果宏存在(已定義),就像一個「標誌」。最好的例子就是頭包括後衛:
#ifndef MYHEADER
#define MYHEADER
// ...
#endif
但有時人喜歡設置一個值(如= 1),即使它們並不需要它,因爲它更詳盡,或清除。
更一般而言,當您影響宏的值時,這是因爲您期望宏名稱被擴展爲該值。當你不希望這個價值存在時。的方法進行試驗,完成可以是不同的:
隨着-DMY_DEFINITION:
#ifdef MY_DEFINITION
// Do something
#else
// Do somthing else
#endif
隨着-DMY_DEFINITION = 1
#if MY_DEFINITION
// Do something
#else
// Do somthing else
#endif