我在C中編寫程序,我面臨一些困難。如果我定義了一個常量(例如#define MAX 100),我可以在某些情況下更改程序中的值嗎?在我寫的主例如MAX = 5,當我運行該程序時,我得到以下:在賦值無效的左值。更改定義的常量的值
1
A
回答
2
您可以重新定義該宏,使用#undef
和#define
。不是我會推薦的東西,特別是如果在頭文件中完成(因爲頭文件將具有新宏的所有文件,並且如果包含錯誤順序的頭文件,您將會有錯誤的值)。
2
由於有兩個不同的MAX,下面的代碼效果更好。
const int cond1_max = 100;
const int cond2_max = 5;
int my_max = 0; // whatever works for you
和初始化你的最大如下:
if(cond1)
my_max = cond1_max;
else if(cond2)
my_max = cond2_max;
else {
// your backup plan
}
0
也許你可以使用此代碼。
#ifdefine MAX
#undefine Max
#define MAX 5
---Your code---
#undefine MAX
#define MAX 100
0
宏不應該用這種方式。這就是爲什麼它是宏而不是變量。
你需要的是全局變量(http://farside.ph.utexas.edu/teaching/329/lectures/node19.html)。
相關問題
- 1. 是否可以更改定義的常量的值?
- 2. 更改類中常量的值
- 3. 如何更改perl中的常量值
- 4. Gurobi python更改了定義值的值
- 5. 你可以不定義或更改PHP中的常量嗎?
- 6. 更改未定義常量的PHP行爲?
- 7. javascript更改變量定義
- 8. memcpy(),更改預定義變量的值時的分段錯誤
- 9. 如何更改定義中的變量
- 10. 在ExpressionEngine中更改用戶定義的全局變量值
- 11. 更改複選框的值時,'變量未定義'錯誤。
- 12. Safari擴展 - 更改預定義的Javascript變量值
- 13. 定義常量
- 14. 確定向量中值的更改
- 15. 能夠常量指針更改值
- 16. 如何動態更改常量賦值?
- 17. 通過指針c更改常量值++
- 18. 常量的正確定義
- 19. iOS - 更改變量值的UI更改
- 20. 更改常量變量的指針C++
- 21. 未定義常量
- 22. PHP常量定義
- 23. CakePHP定義常量
- 24. 更改變量的值onclick
- 25. 更改類變量的值
- 26. 更改變量「cookies」的值
- 27. 更改變量的值?
- 28. Javascript - 更改變量值是另一個變量定義的一部分
- 29. 定義更改
- 30. 更改常量表達式的值,在現有的預BinaryExpression
聽起來像你不想*常數*那麼,呃? –
只是事實檢查你在這裏,這聽起來像一個編譯錯誤,而不是運行該程序時會得到的錯誤:) – Gian
#define是一個預處理器命令。在編譯時進行預處理期間,代碼中MAX的所有實例都將被替換爲100.它看起來像是想要類似於全局變量的東西或需要定義更多的常量。 –