我知道如何使用extern "C"
但是您必須使用它的條件是什麼?何時使用extern「C」?
extern "C"
告訴C++編譯器不執行任何名稱重整上 大括號內的代碼。這使您可以在C++中從 調用C函數。
例如:
#include <string.h>
int main()
{
char s[] = "Hello";
char d[6];
strcpy_s(d, s);
}
雖然這種編譯VC++的罰款。但有時這寫成:
extern "C" {
#include <string.h>
}
我沒有看到這一點。你能舉一個真實的例子,extern "C"
是必要的嗎?
而是黑客''避免名字改編的,使用''標題。 –
@AlexandreC:使用''標題絕對不是一個好主意。 ''頭部*不*保證將標識符放置在全局名稱空間中,從而在代碼移動到其他編譯器時破壞依賴於全局名稱空間標識符的代碼。另外,''頭可能並且實際上會將標識符放置在全局名稱空間中,因此理論上也會破壞依賴於無污染全局名稱空間的代碼。 「理論上」雖然過於模糊,至少有一個白癡做到了。所以,不要使用它們。 –
@ AlfP.Steinbach:如果您編寫C++,請使用''。如果你編寫C,使用''和**用C編譯器**編譯你的代碼。混合語言不是一個好主意。 –