1

作成者が型宣言の変数名の前に空白を追加する C プログラムを発見しました。

int * foo;

GNU インデントは、スタイル (GNU、K&R、Linux) に関係なく、常にこの空白を削除します。この規則について明示的に言及されている場所はどこにもありません。このプログラムの作成者に、「誰もやらない」以外に何と言えますか?

4

2 に答える 2

4

スタイルには正当な理由がありますT *p;- それが文法の仕組みです。
スタイルには正当な理由があります-それはポインタ型を持っているT* p;ことを強調しています.p

T * p;誰かにとってきれいに見えるかもしれないという以外に、本当の正当化はありません。そうは言っても、スタイルは混乱を招く場合にのみ問題になります. 彼が 1 行に 1 つの変数を宣言しているだけであれば、これは問題ではないと思います。彼が次のようなものを書いている場合

int * foo, bar;

次に、彼が慣習を使用することを丁寧に提案したい場合があります

int *foo, bar;

のみ fooがポインターとして宣言されている ことを明確にするため。

于 2013-10-04T17:56:33.203 に答える
2

K&Rスタイルは、そうあるべきだと述べています

int *foo;  

このプログラムの作成者に、「誰もやらない」以外に何と言えますか?

彼に何も言わないでください。それは選択の問題です。
そして、この美しい答えを読んでください。

于 2013-10-04T17:41:30.297 に答える