1樓:北冰啊
你要明白一點是標頭檔案是在預處理階段被包含到.cpp檔案中的,所以,你宣告的那個變數在1.cpp和2.
cpp編譯之前就已經加到**段裡了。至於你用1.cpp修改那個變數,是在編譯後執行的時候發生的。
所以,那個變數在2.cpp中仍然是預設值
2樓:暗黑系巨龍吟風
你可以試下在標頭檔案裡面定義,然後cpp檔案裡面包含標頭檔案使用
3樓:夢想窗外
這就簡單了,在其中一個.cpp檔案中定義全域性變數,之後在標頭檔案中將該全域性變數宣告為extern,如:
1.cpp
int g_var;
x.hextern int g_var;
接下來,需要用到該全域性變數的.cpp包含x.h標頭檔案就ok了。
4樓:
很簡單:
在1.cpp裡定義此變數:如 int g_var = 0;
在其它用到的.cpp裡宣告為extern就ok了. 如:extern int g_var;
5樓:
應該是你的程式寫的不對~按我寫的操作看下
第一步,寫一個a.h的標頭檔案
**如下:
void fun(int *n);
第二部,寫一個a.cpp的原始檔
**如下:
void fun(int *n)
第三部,寫一個測試原始檔 test.cpp**如下
#include "stdio.h"
#include "a.h"
int n=0;
int main()
編譯執行結果為:
原始n的值是0
處理後的n值是1
6樓:匿名使用者
首先只能在一個cpp檔案中宣告全域性變數,另外最好加個包含宣告變數的標頭檔案,這樣就基本上解決問題了。
比如://---------------------------------------
// 全域性變數valuedef.h中宣告如下:
#ifndef include_g_value
#define include_g_value
extern int g_itest; // 宣告引用全域性變數一
extern int g_dtest; // 宣告引用全域性變數二
#endif
//---------------------------------------
// 定義全域性變數 test.cpp中宣告
int g_itest; // 宣告全域性變數一
int g_dtest; // 宣告全域性變數二
// ......
//---------------------------------------
// 在使用的變數的地方, 新增 #include "valuedef.h"
// 就行了...
7樓:匿名使用者
這個我們以前學的編譯原理中有個程式用到過,它當時的解決辦法是:
在主函式中宣告這一變數
然後在一個全域性變數定義的標頭檔案中再對它宣告,不過這時候宣告是有區別的(防止重複定義) 加上一個關鍵字 extended ……
然後其他cpp檔案中呼叫這一個標頭檔案
當時那個大程式這樣就行了。具體細節我也忘了,你可以試著
在c++中,在檔案中宣告的public的變數,如何做才能使這個變數在cpp檔案一個方法中被賦值
8樓:機甲戰士
extern int a;
在cpp檔案中:
#include"變數a所在標頭檔案名"
int a = 0;...
9樓:匿名使用者
在方法的最後把值給還原,改變的值用別的變數代替
10樓:匿名使用者
呼叫方法的時候,把這個變數按引用傳給方法即可
c語言中的標頭檔案是什麼概念,c語言標頭檔案的是幹什麼用的?
標頭檔案是你程式中需要用到東西,如需要某個數學函式,則必須包括數學相關標頭檔案,如math.h,當然,也可以自己寫函式,只要你不怕麻煩!標頭檔案是你程式中需要用到東西,如需要某個數學函式,則必須包括數學相關標頭檔案,如math.h,當然,也可以自己寫函式,只要你不怕麻煩!標頭檔案就是在你所編制的程式...
c語言寫標頭檔案定義巨集的問題,C語言寫標頭檔案定義巨集的問題
兔子和小強 ifndef a h define a h endif 就是如果沒有定義a h那麼就定義a h,並執行.這樣就避免了重複include的問題。標頭檔案叫file 那麼一般 ifndef file h 這是c的風格,也可以取一個唯一的其他識別符號 預編譯 內的防止重複編譯就是這樣做的,比如...
c語言中標頭檔案的作用,在C語言中,標頭檔案的作用是什麼?
標頭檔案?你是說main 主函式啊 還是 資料庫函式啊?main 必須得!是下例函式要用到的 資料庫 不如你呼叫字串 那麼就得事先開資料庫函式庫 主要是給你程式設計提供方便,提供了一些底層的庫函式,封裝了作業系統上的操作介面 include 設定插入點 include 字元處理 include 定義...