假設我們有一個C++項目。我們可以使用通過extern "C"
關鍵字在C++項目中的C文件中定義的函數。例如:我們可以在C文件中定義一個C++方法嗎?
C代碼:cfile.c
#include <stdio.h>
void f(void)
{
printf("\n This is a C code\n");
}
.cpp的代碼:cppfile.cpp
#include <iostream>
extern "C" {
void f();
}
int main(void)
{
f();
return 0;
}
因此,我們可以做到這一點了相反的情況:
Cpp代碼:cppCode.cpp
struct MyClass
{
virtual void f(const char* text);
void func(const char* text);
};
我們可以實現在C文件中f
方法和func
方法(例如:cCode.c)???這可能嗎? (只是我個人的目的問題)
編號類成員函數總是具有C++語言鏈接,所以它們永遠不能匹配C翻譯單元導出的任何函數。 –
@KerrekSB你不能在選項中編輯它嗎? –
@GillBates,不,這是不可能的,因爲調用約定是不同的。 C編譯器無法生成對類方法的正確調用。 – SergeyA