我想提出一個基於文本的RPG與C++和我有同樣的錯誤彈出一次又一次,我知道我在做什麼根本性錯誤,但我不知道是什麼。搜索提出了針對特定編譯器錯誤的解決方案,但沒有任何可用於修復我正在編寫的代碼的解決方案。C++無法建立變量之間的通信中獨立的功能
問題我想回答:如何使用指針在不同函數之間啓用變量通信?換句話說,我如何使用指針指向一個變量的值,以便我可以在未聲明的函數中使用和操作該值?
TL; DR版本:我試圖讓我的「exp」int變量與使用指針的外部函數進行通信。我得到的錯誤「ISO C++禁止指針和整數[-fpermissive]之間的比較」
龍版本:這裏有一個位碼的地方,我有問題:
在文件charlvl.cpp:
...
int lvl = 1;
int *exp = 0;//value I want communicated to main()
int str = 0;
int vit = 0;
...
文件fight.cpp(main.cpp中):
...
//you've just killed a monster
cout << "\nThe monster drops to the ground." << endl;
cout << "You gained " << expValue << " experience!" << endl;
&exp += expValue;//&exp is the character's experience.
//expValue is the exp gained upon monster death
//*exp (from charlvl.cpp) is the value I want to communicate to here.
這不是在這裏宣佈,但在charlvl.cpp。如何在charlvl.cpp和main()中的聲明變量之間建立通信,而不必求助於使用全局變量?
'* exp + = expvalue'是我想你在找什麼。 –
變量被聲明爲全局變量,還是局部在函數中?你爲指針分配內存嗎?如果變量是全局變量,爲什麼要使用指針?何時可以在其他源文件中聲明'extern'?除了明顯的語法錯誤之外,沒有足夠的信息來正確回答這個問題,請發佈更完整的代碼(請參閱http://sscce.org/獲取提示)。 –