マクロとの比較とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > マクロとの比較の意味・解説 

マクロとの比較

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/27 16:15 UTC 版)

typedef」の記事における「マクロとの比較」の解説

C/C++にはテキスト置換機能としてマクロ備わっているが、型名置換に使うには問題がある。まず、ポインタ型正しく扱えない。 #define const_char_ptr_t const char *const_char_ptr_t s1 = "abc", s2 = "ABC"; // s2はconst char型となり、コンパイルエラー引き起こすtypedefであればポインタ型正しく扱えるtypedef const char *const_char_ptr_t;const_char_ptr_t s1 = "abc", s2 = "ABC"; また、マクロは乱暴な置換行なうことから、意図しない置換による原因特定のしにくいコンパイルエラー引き起こすこともある。

※この「マクロとの比較」の解説は、「typedef」の解説の一部です。
「マクロとの比較」を含む「typedef」の記事については、「typedef」の概要を参照ください。


マクロとの比較

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/16 18:58 UTC 版)

インライン関数」の記事における「マクロとの比較」の解説

古いC言語C89)などでは、インライン展開をソースレベルの引数付きマクロで実現してきた。インライン関数マクロ比べて次のような利点がある。 マクロ呼び出しは型チェックをしない。また、引数正し形式であるかもチェックしないインライン関数呼び出しではこれらがチェックされるC言語マクロ単なる文字列置換であり、予期せぬ副作用や、引数評価複数行ってしまうことによる弊害生じことがあるインライン関数そのような副作用もたらさないマクロ内部でのコンパイルエラーは、マクロ展開後のコード発生するため、プログラマにとっては理解難しくデバッグ時間がかかることがあるインライン関数コンパイラ処理するため、コンパイルエラー発生個所および原因特定しやすいマクロ内では構文制限され通常とは異なった書き方要求されるインライン関数通常の関数と全く同じであり、インライン化するかどうか自由に決定できるインライン化されコードデバッグ情報マクロ展開したコードよりも扱いやすい。ブレークポイント作成も可能である。 多くコンパイラではある種再帰呼び出し関数インライン展開できる。再帰的マクロ一般に不正である。 これらの利点は、マクロ使用したジェネリックプログラミング対する、C++関数テンプレートメリットと同様である。 C++設計者ビャーネ・ストロヴストルップは、マクロよりもインライン関数を使うべきだと主張している。

※この「マクロとの比較」の解説は、「インライン関数」の解説の一部です。
「マクロとの比較」を含む「インライン関数」の記事については、「インライン関数」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「マクロとの比較」の関連用語

マクロとの比較のお隣キーワード
検索ランキング

   

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



マクロとの比較のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS