Cプリプロセッサ・マクロとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > Cプリプロセッサ・マクロの意味・解説 

Cプリプロセッサ・マクロ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/23 20:49 UTC 版)

可変長引数」の記事における「Cプリプロセッサ・マクロ」の解説

C言語プリプロセッサマクロ定義において、可変長引数マクロには、以前トリック的な方法使われていたが、C99本物可変長引数マクロ標準化された。__VA_ARGS__という識別子使用する次のような関数呼び出し展開されるマクロ定義したいとする関数可変長引数をとるため、機能制限したなければマクロ可変長引数をとるようにしたい。 void realdbgprintf(const char *sourceFilename, int sourceLineNumber, const char *formatString, ...); C++での可変長引数マクロ設計問題があるため[要説明]、以下に示すような定義は行えない。 #define dbgprintf(cformat, ...) realdbgprintf(__FILE__, __LINE__, cformat, __VA_ARGS__) この書き方だと、dbgprintf("Hello")と記述した際にrealdbgprintf(__FILE__, __LINE__, "Hello", )と展開される関数の引数リストコンマ終えると構文エラー起こすため、printfのような使い勝手得られないgcc独自構文では##__VA_ARGS__という識別子サポートしている。これを利用することにより引数ゼロ個のものも定義できる。 #define dbgprintf(cformat, ...) realdbgprintf(__FILE__, __LINE__, cformat, ##__VA_ARGS__) gcc以外でも使用するためには__VA_ARGS__を使うほかないが、その場合は書式文字列含めて可変長引数として渡す必要がある。 #define dbgprintf(...) realdbgprintf(__FILE__, __LINE__, __VA_ARGS__) Microsoft Visual C++独自拡張モードでは、ゼロ個の引数受け取る__VA_ARGS__は末尾コンマ抑制する動作をする。 C++20では、空の可変引数処理するための__VA_OPT__マクロサポートする

※この「Cプリプロセッサ・マクロ」の解説は、「可変長引数」の解説の一部です。
「Cプリプロセッサ・マクロ」を含む「可変長引数」の記事については、「可変長引数」の概要を参照ください。

ウィキペディア小見出し辞書の「Cプリプロセッサ・マクロ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Cプリプロセッサ・マクロ」の関連用語

Cプリプロセッサ・マクロのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Cプリプロセッサ・マクロのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの可変長引数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS