なぜプログラマーはマクロを使用して欠落している中括弧を追加したのでしょうか?

Susan Sarandon
リリース: 2024-11-22 14:31:27
オリジナル
798 人が閲覧しました

Why Did a Programmer Use a Macro to Add Missing Braces?

極端なマクロ/プリプロセッサの乱用: 注意すべき話

マクロとプリプロセッサはプログラミングにおいて重要な役割を果たしますが、その乱用は悲惨な結果を招く可能性があります結果。以下は、マクロの過剰使用の危険性を示す悪名高い現実の例です。

中かっこが見つからないケース

あるコードベースで、ロシアのプログラマーが独特のマクロ:

#define RETURN(result) return (result);}
ログイン後にコピー

このマクロは、右中括弧が存在していた関数に自動的に右中括弧を追加します。 使用済み。ただし、その型破りな構文により、コードは次のようなものになりました。

int myfunction1(args) {
    int x = 0;
    // do something
    RETURN(x)  // No closing brace here!
}
ログイン後にコピー

これにより、構文エラーが発生し、構文の強調表示が正しく機能しなくなります。このような抜本的な措置を講じたプログラマーの動機は、メモリを節約したいという強迫観念に基づくものでした。これは、リソースが非常に限られている衛星システムを扱うことから染み付いた習慣でした。

その他の奇行

Beyond中括弧が欠けているため、このプログラマーは他の異常な慣行を示しました:

  • A 「誰が見ているかを知る」ためにモニターの上に凸面鏡を設置
  • コンパイラエラーに対する「罰」として腕立て伏せを素早く連打

ほどほどのレッスン

この極端なケースは、マクロ悪用の潜在的な落とし穴を浮き彫りにしています。マクロは、場合によっては利点 (コード サイズの削減や条件付きコンパイルなど) をもたらすこともありますが、過度に使用すると、コードが読みにくくなり、エラーが発生しやすくなる可能性があります。プログラマーは、マクロの利点とそれがもたらすリスクのバランスをとりながら、明確さと保守性を追求する必要があります。

マクロの優秀性のまれなケース

上記の例とは対照的に、マクロが本当に役立つ場合もあります。そのようなケースの 1 つは、複数の翻訳単位間で一貫性を保つ定数またはプラットフォーム固有の構成を定義する場合です。マクロを使用することで、開発者はヘッダー ファイルを繰り返しインクルードすることなくこれらの定義を強制できます。

マクロの能力と危険性の両方を理解することで、プログラマーは責任を持って機能を活用し、悪名高い「中かっこの欠落」シナリオのような落とし穴を回避できます。必要に応じて自分たちの強みを活かしながら。

以上がなぜプログラマーはマクロを使用して欠落している中括弧を追加したのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート