[解決済み] 複数行のプリプロセッサー・マクロ
2023-02-07 04:54:23
質問
複数行のプリプロセッサマクロを作成する方法は?1行の作り方は知っています。
#define sqr(X) (X*X)
が、こんな感じで必要です。
#define someMacro(X)
class X : public otherClass
{
int foo;
void doFoo();
};
どうすればうまくいくのでしょうか?
これはあくまで例であり、実際のマクロは非常に長くなる可能性があります。
どのように解決するのですか?
あなたは
\
を行継続エスケープ文字として使用します。
#define swap(a, b) { \
(a) ^= (b); \
(b) ^= (a); \
(a) ^= (b); \
}
EDIT: @abelenkyさんがコメントで指摘されているように
\
という文字が
は行の最後の文字でなければなりません。
. もしそうでなければ(たとえその後に空白があったとしても)、それ以降の各行で紛らわしいエラーメッセージが表示されることになります。
関連
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み] 講師が書いたC言語のファイルは、なぜ最初の行に#が一つ付いているのですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】CMakeでプリプロセッサー・マクロを定義する?
-
[解決済み] Cプリプロセッサによるint型と文字列の結合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?