web-dev-qa-db-ja.com

複数行の宣言スタイルの背後にある理由は?

Windowsヘッダーファイルの宣言スタイルの背後にある理由について少し興味があります。

それらを読むと、次のような複数行の宣言が表示されます。

WINBASEAPI
HANDLE
WINAPI
GetStdHandle(
    IN DWORD nStdHandle
    );

それらが次のように書かれていない主な理由は何ですか?

WINBASEAPI HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle);

つまり、1行で?

7
user541686

私は著者の一人ではありませんが、明らかに彼らは、このスタイルはすべてを1行にまとめるよりも読みやすいと考えていました。このスタイルの認識されている利点は、各関数の名前、修飾子、およびパラメーターが常に同じ位置(インデントの深さ)にあるため、それらを簡単に見つけることができることです。

さらに、 Doxygen などのコード文書化ツールを使用する場合、このスタイルでは、各パラメーターの直後に同じ行にパラメーターdocコメントを追加できます。これにより、(IMHO)でパラメーターの読み取りと保守が容易になります。

単一行アプローチでも、長くなりすぎると行を分割する必要があることがよくあります。そして、WinAPIファイルでは、非常に一般的な関数宣言があります:-)したがって、おそらくある時点で、それらの行をどこで区切るかについて「標準的な」アプローチをとることに決めました。

6
Péter Török

その理由は、多くの引数または修飾子を持つメソッドの可読性を高めるための規則である可能性が最も高いです。このような規則に慣れていると、コードを精神的に解析するのが簡単になります。また、引数が多い場合は、水平スクロールを回避できます。これは、メンタル解析プロセスを少し中断するアクションです。

要するに:すべて読みやすさのためです。読みやすさは主観的な場合があることに注意してください。

2
Falcon

一部のコード標準とテキストモードエディタによって課される80文字の行幅制限のため、これらはこのように記述されていると言えます。

1
sylvanaar

個人的には、言語に関係なく、複数行の宣言を読むことを好みます。

たとえば、私はAIプロジェクトのパートナーと協力しており、Cで書いています。彼は最初の例のように多くのコードを実行し、ループとステートメントブロックを区切るために空の改行を使用することはめったにありません。彼のコードを読んで私を夢中にさせます!

0
Jason