私はいくつかの独自のソースコードを見ています。Cファイルが/ * [] */
コードはCおよびC++で書かれており、ビルドシステム用のmakeを使用しています。
各ファイルは、ソースファイルの場合は[]
:/*[]*/
、メイクファイルの場合は#[]#
となります。これの理由は何でしょうか?
コードは、拡張機能を使用してGCCを使用してARM用にコンパイルされます。
私はいくつかの独自のソースコードを見ています。Cファイルが/ * [] */
コードはCおよびC++で書かれており、ビルドシステム用のmakeを使用しています。
各ファイルは、ソースファイルの場合は[]
:/*[]*/
、メイクファイルの場合は#[]#
となります。これの理由は何でしょうか?
コードは、拡張機能を使用してGCCを使用してARM用にコンパイルされます。
これは、ある種の自動拡張用のプレースホルダです。
通常、macrodef(またはソースコード制御フィルタの1つ)のようなものは、関連するテキストを含むようにそのような項目を展開します。通常、コメント保護された括弧のみが展開されるため、コメントはそのまま残り、コンパイル時に実際の展開された項目からソースコードを保護します。
しかし、現在検討しているのはおそらく、すべての内部拡張が削除された外側の角括弧です。これは、あるソースコード管理システムから別のソースコード管理システムへのコード移行中に行われた可能性があります。このようなアイディアは非常に推測的ですが、拡張アイテムを削除するのではなく、拡張アイテムを移行する努力をしているようには見えません。
は、私が働いていた一つのプロジェクトでは、すべてのCソースファイルは一番最後にコメントを含んでいた:
/* End of file */
その理由をgccの警告
Warning : No new line at end of file
だから我々はこれを持っていました。コメントの後に人が書かないようにコメント(新しい行が続きます):
それはおそらく 'vi'でしょう。 – Rohan
私はそれをコーディングスタイルと呼ぶことはしませんし、標準ではないと思います。 '#'で始まる行はプリプロセッサ指令であることが多く、 '[##'は標準ではありません。 '#[]#'は本当に各ファイルの最後の行ですか? –
私の推測では、makefileシステムはこれらの行をどこかで使用しています。コードの古いCコードが十分にある場合は、//コメントを必ずカウントすることはできないので、#はコード以外の1行を追加する方法になり、プリコンパイラはそれをフィルタリングします。おそらく、それは依存関係ツリーなどを構築するためのものでしょうか?私の感情は、メイクファイルを見ているだろう。 –