1樓:南京新華電腦專修學院
我有幾個方案,我經常在vc下使用,都沒問題,你試試:
方案1:在一個檔案中定義全域性變數「型別 tmp;」,注意是全域性變數。另一個檔案全域性變數的位置使用「extend 型別 tmp;」。
方案2:把hal.c檔案裡的函式引數加一個指向tmp的指標,tmp在main中,在hal.c裡的檔案使用tmp時,把地址傳過去就行了。
例如:mian()
function(&tmp;...;...);
...}
在hal.c裡面
function(char *tmp;...;...)
這樣就行了
方案1、2都不用hal.h
方案3:你把hal.c的子函式寫進hal.h,在mian函式之前include一下就行了。
但不推薦此方法。
對你出現的問題的理解:
你在hal.h中宣告瞭tmp,在兩個檔案裡都包含它,表示包含了兩次,c語言規定如果沒有限定為區域性變數,則各個檔案都可以呼叫,這就導致你宣告瞭兩個名稱相同的同型別變數,當然不行。
如果定義為區域性變數,那麼另一個檔案就沒辦法用它了,或者這麼說:兩個檔案各有一個tmp但不是同一個tmp,改變一個的值,另一個不變。
常用方法就是extend一下(方案1)。
順便說一句,我從來沒用過unsigned char型別,因為char型別本身就是非負的,可能是因為編譯器的關係吧
c語言全域性變數問題。 現有2個檔案,被放在同一個工程中。如果在兩個檔案的函式外部定義同名的變數,
2樓:海納百川文淵閣
若兩邊都初始化了,那是定義,就是重定義了,逐檔案編譯時無錯,但連結時會報錯。
若只有一邊或兩邊都未初始化,vs.net及devc++中實測這是可行的,編譯器會把其中一處處理成定義,其他處認作宣告。
其實還可在不同檔案中定義同名但型別不同的變數,不信可試試。
c語言 如何在一個檔案中呼叫另一個檔案的函式 用標頭檔案
3樓:匿名使用者
test.h
#include
int func(int x);
func.c
int func(int x)
main.c
#include "test.h"
void main()
把以上三個檔案
du放到一個工程中,zhi編譯,就可以看到dao結果了。
c語言從一個檔案呼叫另一個檔案的函式 用標頭檔案
4樓:
//test.c
#include
#include "main.h"
void main()
//test2.c
int funsum(int a,int b)//main.h
int funsum(int,int);
結果是列印sum=3
如何在一個c檔案中呼叫另外一個c檔案中的變數
5樓:刀無極啊
變數要定義為全域性變數,就是要在函式體外面定義變數,同時不能加關鍵字static靜態的,靜態全域性變數只能在本檔案內使用,你先在一個檔案中定義變數,比如:
#include
int a;
int main()
在另外的檔案中,如果你想要使用變數a,那麼首先要extren int a;extren關鍵字的意思是到其他檔案中尋找,這樣你就可以在其他檔案中使用變數a了,注意全域性變數會自動初始化為0,如果你不初始化,同時全域性變數的值會儲存到靜態儲存區直到整個程式執行結束的
c語言,兩個源程式,其中一個源程式檔案呼叫另一個檔案中的函式。
6樓:匿名使用者
下面檔案假設叫b.c,編寫一個b.h,內容為:void enorder();
假設上面檔案為a.c,前面加一句:#include "b.h"或不用b.h前面加句void enorder();也成
b.c中第1句改為:extern int a[10];
void enorder();在標頭檔案b.h中寫成extern void enorder();也成
c語言中,可不可以在一個函式中開啟兩個檔案呢?
7樓:匿名使用者
file *pfa = fopen("a.txt");
file *pfb = fopen("b.txt");
通過pfa和pfb操作這兩個檔案
fclose(pfa);
fclose(pfb);
和操作一個檔案是一樣的,用不同的指標就可以
c語言中如何用一個程式呼叫另一個程式,兩個程式都是.c檔案。
8樓:匿名使用者
1、要想跨檔案使用同一個變數,該變數必須定義成全域性變數2、在另外的檔案引用檔案外的全域性變數,引用者必須用extern來宣告變數。
3、必須在函式中去操作該變數
例如:1.cpp:
void func() ;
int n ;
int main()
2.cpp
#include
extern int n;
void func()
{std::cout << "n="<
9樓:
你把被呼叫的.c檔案中的main()函式改成其他名字 如fun();
然後在另一個.c檔案的main()函式中呼叫fun();
只要保證一個c工程只有一個main()做入口點就行了,至於保留哪個main函式,那就要看你程式的邏輯了,注意main函式是入口點的概念
10樓:匿名使用者
src1.c
int fun1()
src2.c
extern int fun1();
int fun2()
C語言中關於“有效數字”的問題,在c語言中,有效數字和有效數位怎麼解釋?
當你輸入2.2e2時a 4.84,而輸入2.2e 2時a 0.20661157024793388429752066115702.它們的是float型,放在記憶體中是 2.2e2 01000011 0,1011100 00000000 00000000,2.2e 2 00111100 1,010010...
關於c語言的問題,關於C語言的問題
鷹弈 1 有定義 int n 0,p n,q p 則以下選項中,正確的賦值語句是 d a.p 1 b.q 2 c.q p d.p 5 解 p為一級指標,其中p為指標的地址,q為二級指標,其中 q為指標的地址,只能給變數或指標變數賦值,不能給地址賦值,所謂地址,就是由acs碼構成,簡單的說,就是每個人...
關於c語言的問題,一個關於c語言的問題
彬彬有禮 對於你的疑問,我一個一個幫你解決 1.因為5 9 代表整除取商,即結果為0 而 5.0 9 代表5除以9,即結果為0.555556 所以兩者結果完全不一樣。再比如 3 2 1,而3.0 2 1.5 2.double b 2這是對的,沒有必要寫成double b 2.0,因為系統會自動幫你轉...