2015-11-19 67 views
0

我正在創建一個允許用戶使用菜單選擇遊戲大小(2x2,3x3,4x4等)的遊戲項目。目前遊戲大小變量正在#define aka常量下聲明。我是否必須將遊戲大小變量設置爲全局?如果是這樣,怎麼樣?在C語言編程語言中更改菜單中的#define值

請給我一些指導如何做到這一點。我仍然是C編程語言的初學者。

+1

宏('#define' token)就是在編譯之前會被代入代碼的文本。它變成了不可變的文字值。 但是我懷疑,因爲它是一個宏,它的使用方式不易轉換爲駐留在內存中並可以更改的變量。 你的問題太過寬泛,無法在SO上回答。因爲它取決於你所提到的實際代碼(我們沒有這個代碼)以及缺乏基本的編程知識(在執行這個任務之前你應該獲得這些知識)。 – StoryTeller

回答

1

如果通過#define宣佈那麼它不是一個變量,它是一個字面常量!聲明你的gameSize作爲(全局)變量(任何函數之外),例如:

int gameSize; 

然後通過一些互動(「什麼樣的菜單的GUI文本?反正...?)讓用戶更改,例如:

int main(...) { 
    printf("Which game size would you like? "); // message on screen 
    scanf("%d",&gameSize); // waiting for a number 
    ... 
} 
+1

我很想倒下。答案(a)促進使用全局變量(b)在快速通道上設置OP,以便在靜態數組無法用全局大小變量實例化時發生編譯器錯誤。 – StoryTeller

+0

在GUI菜單下。 它已被聲明爲「定義gameSize 3」。它指的是3x3的遊戲化。 我想改變main方法中的gameSize的值。 – Milky

+0

在GUI中,訣竅是在您的代碼中有一個回調函數,用於更改遊戲大小的值,重新初始化遊戲板等,並連接到某個可讓您選擇值的GUI元素。 –