我有其設定基於另一變量的變量的函數。爲不同的變量條件檢查
if(!button_x.on)
button_x.on = 1;
if(!button_y.on)
button_y.on = 1;
if(!button_z.on)
button_z.on = 1;
.
.
.
如果它是x,y,z,...。僅在運行時確定。對於不同的(100個)不同情況具有多種這樣的條件看起來不太好。在C中有更好的方法去解決這個問題嗎?
編輯: 我應該更好地誣陷我上面的例子。
if (!structureA.visited)
visit_structureA(); // does some operation
if (!structureB.visited)
visit_structureB();
if (!structureC.visited)
visit_structureC();
。 。 。
結構的數量和結構的名稱沒有在編譯時已知的。但結構名稱遵循上面顯示的特定模式。它只在運行時才知道。 我嘗試使用宏是這樣的:
#define VISIT(str) \
if (!structure##str.visited) \
visit_structure##str();
//In the function:
// str = 'known at runtime'
VISIT(str);
,但這不會爲預處理器指令在編譯時更換,而不是運行時明顯的原因工作。我不確定是否有更好的方法呢?
「按鈕[i]」的數組? –
你需要在狀態之間切換嗎?即,如果它是ON,則將其關閉,反之亦然。 – Mahesh