如何在C++程序中調用函數,其中函數聲明在其他 C++程序中? 如何做到這一點?我可以使用extern?在C++程序中調用函數,其中函數在其他C++程序中聲明
1
A
回答
7
我建議最好的方法是重構第一個C++程序,使所需的功能成爲庫的一部分。然後,您的程序都可以鏈接到該庫,並且該功能可供兩者(以及任何其他需要它的程序)使用。
看看this tutorial。它涵蓋了如何使用gcc
創建並使用庫。其他類似的教程將存在於其他C++變體中。
2
#include
源文件與其他函數的聲明。
3
如果你的程序是'進程',它取決於你正在運行你的程序的操作系統。在大多數情況下,你不能輕易(如果有的話),因爲進程將不得不共享內存。在某些os的調試版本中,這可能是可能的。簡而言之:如果你的意思是你想從另一個程序中調用正在運行的程序的代碼中的函數,這是非常困難的,並且非常依賴於系統。
2
聲明或定義?需要記住的重要一點是,在使用函數之前,編譯器需要知道函數原型,所以使用#include
來確保編譯器可以訪問原型。它不一定需要實際的代碼,這在鏈接時變得很重要。
所以,如果您有:
MyFunc.hpp:
int add(int a, int b);
MyFunc.cpp:
int add(int a, int b)
{
return a + b;
}
然後你就可以在另一個文件中使用此:
Main.cpp
#include <iostream>
#include <MyFunc.hpp> // This is the important bit. You don't need the .cpp
int main(int argc, char* argv[])
{
std::cout << add(20, 30) << std::endl;
}
相關問題
- 1. 從C程序中調用C++函數
- 2. 在其他函數中調用函數
- 3. 如何在其他函數C++中調用函數?
- 4. 函數如何在程序中看到其他函數?
- 5. Flask函數在同一個應用程序中調用其他瓶子函數?
- 6. 調用C中的Python函數++程序
- 7. Excel中調用C的函數++程序
- 8. 調用C++程序中的dll函數
- 9. C++:在函數調用中聲明函數
- 10. 如何編寫在C++中使用其他函數的函數
- 11. C++程序停止在函數調用
- 12. 在其他函數中調用變量
- 13. 在geocomplete中調用其他函數
- 14. C++中的函數聲明
- 15. 如何在其他函數中調用自調用javascript函數?
- 16. C# - 從其他腳本調用函數
- 17. 在其他函數中聲明函數方法的用例是什麼?
- 18. 聲明在C++中的成員函數
- 19. 在C++中聲明operator +函數
- 20. 在C++類中重新聲明函數
- 21. 在Web應用程序中使用JavaScript調用C#函數
- 22. 在Ruby中使用eval函數調用其他函數
- 23. 在C#應用程序腳本中調用PowerShell函數
- 24. 在Cocoa應用程序中調用C++ dylib和Header的函數
- 25. 程序用C - 問題中的函數
- 26. 聲明函數在C++
- 27. 使用函數和聲明順序返回其他類變量
- 28. 在C#中使用其他函數中定義的類變量
- 29. 如何在函數的其他ajax中調用函數
- 30. 如何在其他構造函數中調用構造函數?