-3
因此,我們必須在我們創造的東西像一個僞語言的編譯器的任務。C++「編譯器」與預處理
例子:
PROGRAM_BEGIN
... //code
VAR(name) = NUMBER(2.3)
PROGRAM_END
我們有一個預處理器來處理這一點,並把它變成C++代碼。
例子:
#define PROGRAM_BEGIN int main(){
#define PROGRAM_END return 1;}
我有什麼麻煩的是,我們要支持這樣的代碼:
VAR(name) = NUMBER(1)+NUMBER(2.5)
左思右想我有一對夫婦的想法,但迄今沒有奏效(例如,使用具有動態創建名稱的變量)。我想,通過一些適當的數據處理,我已經制定了將輸入組織到類中的計劃,並且使用運算符重載可以幫助完成這項工作,但我仍然無法看到大局。
你能說明你到底在問什麼嗎?如果你正在尋找一種用預處理器表達'VAR(name)'的方法,你應該看看預處理宏。在這種情況下,'#define VAR(name)int name'應該有效。其實'int'在這裏做得不好。我猜想使用浮點數並進行隱式轉換或使用聯合將是方式。但沒有實際的要求就說不清楚。 –
是我已經這樣做了,但是如果你這樣做了NUMBER(22)+ NUMBER(11)將會變成int x = 22; + int x = 11;這將無法運行...... –
'1'或者'2.5'已經是一個數字,所以'NUMBER'宏不需要做別的 –