如果所有函數都在同一個.c文件中。只需要在文件開始的地方定義變量就可以了。
成都創新互聯公司是一家集網站建設,未央企業網站建設,未央品牌網站建設,網站定制,未央網站建設報價,網絡營銷,網絡優化,未央網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
....
int g_test;
main()
{
....
}
fun1()
{
....
}
fun2()
{
....
}
如果是要在多個.c文件中的所有函數使用同一個變量。
可以用 extern聲明。
file.c
int g_int;
main()
{
。。。。。
}
對于工程中的其他文件,想訪問這個全局變量可以用
extern int g_int ;聲明
這樣就可以用了
可以把常量定義在一個頭文件中,需要用到的.cpp文件調用這個.h文件就行。你試試,記得上學時這么做過。
C語言中一個項目只能有一個main函數,你這屬于兩個項目,就算都運行起來了,也是不同的進程,進程是資源分配的基本單位,也就是說,兩個進程擁有不同的資源,不可能共享一個變量的。
看你的執行順序應該是分別執行兩個 .c 文件。就是兩個獨立的進程。每個進程有相互獨立的虛擬地址空間。你所得到的40059c是另一個進程的函數地址。 在exploit中的40059這個地址是非法使用的。要想在一個進程中使用另一個進程的函數,就必須要用進程間通信。如共享內存,注冊函數,共用此函數。
看你的意圖是想要在一個文件中利用函數指針調用別的文件中的函數。如果說你只是想要熟悉一下函數指針,那么這種方法是不可取的。因為函數在定義是并不分配存儲空間,在調用的時候在棧中分配存儲空間,返回時釋放。
要想用數值強轉成函數地址。這個函數的地址就必須不能改變。那么就需要將函數聲明為靜態函數。這樣麻煩又來了,靜態函數是文件內部使用,外部不能引用。所以,你這種做法是不可取的。
網頁名稱:c語言共享一個函數 c語言共用體的賦值和輸出
文章路徑:http://www.2m8n56k.cn/article26/doidpjg.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、網站建設、動態網站、靜態網站、面包屑導航、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯