extern-c

    6熱度

    2回答

    爲什麼不應該extern "C"對於需要被定義爲C函數的函數來指定?將文件編譯爲C源代碼時對編譯器有什麼影響? 如果在C編譯器沒有任何影響,我們不能只通過刪除#ifdef __cplusplus檢查定義如下頭文件中的函數? extern "C" { int MyFunc(); } An answer to another question說,#ifdef是需要的,但我不明白爲什麼:

    18熱度

    2回答

    我經常遇到C頭文件,其中包含extern "C"後衛, 但不包含任何實際功能。例如: /* b_ptrdiff.h - base type ptrdiff_t definition header */ #ifndef __INCb_ptrdiff_th #define __INCb_ptrdiff_th #ifdef __cplusplus extern "C" { #endif

    17熱度

    3回答

    從C++ 11草案,7.5(第1段): 兩種功能類型的具有不同語言 鍵是不同的類型,即使它們是其它方面相同。 因此,我可以根據語言的聯繫做超負荷: extern "C" typedef void (*c_function)(); typedef void (*cpp_function)(); void call_fun(c_function f) { } void call_fun(c

    0熱度

    1回答

    我在Windows 7 Visual Studio 2010中編譯舊的MFC WIN CE嵌入式項目時出現問題。我相信舊的應用程序是在嵌入式Visual Studio 4中編譯的並且需要mfcce211.dll。 任誰,所有的源文件的管理編譯罰款,但我得到以下鏈接器錯誤: error LNK2019: unresolved external symbol _VirtualCopy referenc

    2熱度

    3回答

    我有一個頭文件,我想從.c和.cpp文件中包含。 所以我知道名字改編和extern「C」如此... #ifdef __cplusplus extern "C" { int isPrime(int64_t p); } #endif 但是當我包括這在.c文件也沒有看到因爲#ifdef __cplusplus 功能 所以後來我最終作出2份: #ifdef __cplusplus

    6熱度

    4回答

    爲了在C文件中使用C++代碼,我讀了我們可以只做extern "C" { (where the c++ code goes here)},但是當我嘗試使用cout打印某些內容時,我不斷收到錯誤,因爲它不識別該庫。我認爲我只是困惑於如何extern「C」允許您使用C++中的C++代碼。

    2熱度

    1回答

    我有一個巨大的C工程。 現在我需要一個C++函數來填充一些變量。 將函數聲明爲extern「C」,從C項目中調用函數是沒有問題的。 問題是,我需要傳遞一個指向C++函數的指針,並且在函數中,我想爲指針賦值。 但正是在這一點上,程序崩潰與「分段錯誤」。 有沒有辦法讓這項工作?還是不可能在C和C++之間以這種方式使用指針? 調用在C功能線程: Restwo = pthread_create(&num,

    48熱度

    5回答

    我知道這一點。 從C++調用C函數: 如果我的應用程序是在C++和我不得不用C編寫的一個庫,然後我會用 //main.cpp extern "C" void C_library_function(int x, int y);//prototype C_library_function(2,4);// directly using it. 此止跌調用函數」 t破解名稱C_library_f

    5熱度

    6回答

    我知道如何使用extern "C"但是您必須使用它的條件是什麼? extern "C"告訴C++編譯器不執行任何名稱重整上 大括號內的代碼。這使您可以在C++中從 調用C函數。 例如: #include <string.h> int main() { char s[] = "Hello"; char d[6]; strcpy_s(d, s); } 雖然這

    0熱度

    1回答

    我有一個cpp代碼,我想調用一個c函數。 兩種編譯很好的.o文件,但是當鐺++的編譯執行,我收到以下錯誤: file.cpp:74:12: error: expected unqualified-id extern "C" ^ 在CPP文件中的代碼如下: void parseExtern(QString str) { #ifdef __cplusplus ex