2017-12-21 14 views
-10

のようなコードを書いていますが、これは auto var=21;に翻訳できます。C++プリプロセッサのセミコロン

#define MAKE auto#define NUMBER (1==0)?のマクロを定義しましたが、うまく機能しませんでした。

簡単に言うと、定義の最後にセミコロンを自動的に追加したいと思います。

ありがとうございました。

+16

けれども、あなたは少しあなたの構文を変更した場合ことを達成することができますか? – StoryTeller

+2

言語と戦ったり、抱きしめたり、その欠陥を受け入れたりしないでください。それ以外の場合は、すべてをさらに悪化させます。 – Ivan

+0

@Ivan Stephen Bourneは、Bourneシェルを書くときにCをAlgolのように見せるためにマクロを使いました。 :) – Barmar

答えて

2

C++マクロ構文では達成できません。あなたは、21歳の前にマクロを持っています。

MAKE var=NUMBER(21) 

代わりの

MAKE var=NUMBER: 21 

をとしてNUMBERを定義します:あなたがあなた自身の構文を発明しているのはなぜ

#define NUMBER(x) (x); 
+0

すべてのanswersありがとうございます。実際には、このような特定の構文の理由thatsのようなLOGOのバージョンを作成しようとしています –