我正在將C文件更改爲C++文件(最終將其與C程序集成)。我對C++非常陌生,實際上這是我第一次接觸到它。我有一個聲明函數main一個TEST.CPP文件,並招呼如下:主要不能調用函數:函數未在此範圍內聲明
#include "test.h"
int main()
{
hello();
return 0;
}
void hello()
{
std::cout << "Hello there!" << endl;
}
的test.h文件中聲明如下:
#include <iostream>
extern "C" void hello();
當我編譯使用G ++ TEST.CPP程序,我收到錯誤「你好沒有在這個範圍內聲明」。
有什麼建議嗎?
此外,在哪裏可以找到C++類及其函數的API?
你解僱了什麼命令? – Sumeet
所以如果一個C程序,比如說myprog.c,需要調用函數hello(),我會在myprog.h中聲明該函數爲extern「C」void hello? – NewToAndroid
從C調用C++很難,至少從C++調用C更困難。最好把所有不需要C++的函數放在一個單獨的'.c'源文件中,所以你把它們編譯爲C,並從C++源文件中聲明它們是extern「C」。在.h文件的「extern C」中放置一些#ifdef __CPLUSPLUS,以便可以將它們從兩種語言中包含在內;例如檢查標準的包含文件。 –