㈠ c語言如何調用另一個c程序
使用system()函數,在stdlib.h中聲明的
C/C++學習指南,邵發,第16章的標准C函數
㈡ 怎樣在c程序裡面調用其他程序
C++和C是兩種完全不同的編譯鏈接處理方式,如果直接在C++裡面調用C函數,會找不到函數體,報鏈接錯誤。要解決這個問題,就要在 C++文件裡面顯示聲明一下哪些函數是C寫的,要用C的方式來處理。
1.引用頭文件前需要加上 extern 「C」,如果引用多個,那麼就如下所示
extern 「C」
{
#include 「 s.h」
#include 「t.h」
#include 「g.h」
#include 「j.h」
};
然後在調用這些函數之前,需要將函數也全部聲明一遍。
2.C++調用C函數的方法,將用到的函數全部重新聲明一遍
extern 「C」
{
extern void A_app(int);
extern void B_app(int);
extern void C_app(int);
extern void D_app(int);
}
C++程序中調用被c編譯器編譯後的函數,為什麼要加extern "C"?
C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯後在庫中的名字與C語言的不同。假設某個C 函數的聲明如下:
void foo(int x, int y);
該函數被C 編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字用來支持函數重載和類型安全連接。由於編譯後的名字不同,C++程序不能直接調用C 函數。C++提供了一個C 連接交換指定符號extern「C」來解決這個問題。例如:
extern 「C」
{
void foo(int x, int y);
// 其它函數
}
或者寫成
extern 「C」
{
#include 「myheader.h」
// 其它C 頭文件
}
這就告訴C++編譯譯器,函數 foo 是個C 連接,應該到庫中找名字_foo 而不是找_foo_int_int。C++編譯器開發商已經對C 標准庫的頭文件作了extern「C」處理,所以我們可以用#include 直接引用這些頭文件。
㈢ 如何在C++中調用C程序
如果引用多個,那麼就如下所示
extern 「C」{
#include 「 s.h」
#include 「t.h」
#include 「g.h」
#include 「j.h」};
然後在調用這些函數之前,需要將函數也全部聲明一遍。2.
C++調用C函數的方法,將用到的函數全部重新聲明一遍
extern 「C」{
extern void A_app(int);
extern void B_app(int);
extern void C_app(int);
C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯後在庫中的名字與C語言的不同。假設某個C 函數的聲明如下:
void foo(int x, int y);
該函數被C 編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字用來支持函數重載和類型安全連接。由於編譯後的名字不同,C++程序不能直接調用C 函數。C++提供了一個C 連接交換指定符號extern「C」來解決這個問題。例如:
extern 「C」{
void foo(int x, int y);
// 其它函數}或者寫成
extern 「C」{
#include 「myheader.h」
// 其它C 頭文件}
這就告訴C++編譯譯器,函數 foo 是個C 連接,應該到庫中找名字_foo 而不是找_foo_int_int。
㈣ 怎樣在一個 C 程序中調用另一個程序 (獨立可執行的程序, 或系統命令)
使用抄庫函數 system(), 它的功能正是襲所要的。注意, 系統返回的值最多是命令的退出狀態值 (但這並不是一定的), 通常和命令的輸出無關。還要注意,system() 只接受一個單獨的字元串參數來表述調用程序。如果要建立復雜的命令行, 可以使用 sprintf()。根據使用的系統, 也許還可以使用系統函數, 例如exec 或 spawn (或execl,execv, spawnl, spawnv 等)。
㈤ C語言中如何用一個程序調用另一個程序,兩個程序都是.c文件。
你把被調用的.c文件中的main()函數改成其他名字
如fun();
然後在另一個.c文件的main()函數中調用fun();
只要保證一個C工程只有一個main()做入口點就行了,至於保留哪個main函數,那就要看你程序的邏輯了,注意main函數是入口點的概念
㈥ C語言如何調用別的程序
你給程序加個參數嘛,參數輸入你需要處理的文件所在的文件夾,然後遍例文件夾所有.txt結尾的文本,一一處理.不就結了?
具體怎麼做可以參考下面這個連接:
http://blog.csdn.net/happytang/archive/2006/06/13/795719.aspx
有問題可以給我發站內信
㈦ C語言 調用另一個程序
調用其他程序有兩種方式,一個是直接調用其他模塊中的函數,另外一個是用系統調內用的方式調用已經編譯容連接好的可執行文件。
第一種方法的話,無論你用什麼工具都是在你的程序裡面添加你要調用函數的函數聲明,然後再編譯之後把兩個obj文件連接起來。或者是把你要調用函數作到一個lib文件裡面,然後連接到這個庫。
第二種方式的話,就是把你要調用的函數(main函數)編譯連接成一個獨立的可執行文件,然後在你自己的程序裡面指定目錄結構程序名用系統調用執行。
VC的話不太適合初學者理解c語言,不過樓主如果是僅僅完成這個程序的功能的話,第一種方法中的編譯和連接工作VB都會給你做,你只需要把代碼加入工程中,然後在你的函數前聲明調用的函數就行了。
--------不華麗的分割線-------
我明白了,你不理解的是我說的編譯啊連接這些術語。這樣吧,你新建一個VC工程,把那個c加進去,然後執行一下。接著去你建的那個工程的文件夾下找一個和你的工程名一樣的後綴是.exe的文件就能用了。前提是你要用的那個.c文件裡面有main方法。