みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Cの書式

プログラミング初めたばかりの者です
そこでCの書式について疑問に思ったことがあります。Cの書き方にはさまざまな書き方があるようですが一般的にはどのような書き方が好まれるのでしょうか?

例えば
int main(void) {
}
なのか
int main(void)
{
}
なのか
(i=0;i<5;i++)
なのか
(i = 0; i < 5; i++)
なのか

最近の言語とかだと変数と演算子の間は空白を開けてる場合が多いようですがCでは開けない場合が多いようにも思います。

他人にコードを見せるわけではないのですが知識として覚えて置きたいと思っています。

くだらない質問ですがよろしくお願いします

投稿日時 - 2018-02-18 09:33:44

QNo.9430178

困ってます

質問者が選んだベストアンサー

その辺は会社によて変わりますが。

入れ子構造にすることが多いので、その入れ子のクラスを明確にしてミスを防ぐために、かっこの始めと終わりは同じ位置にするということが多いでしょう。
もしくは変数の頭のカラムと終わりの括弧を同じにするなど。
会社の方針があるはずです。

スペースは、あってもなくても関係はありませんが、そもそも意味のないものなので、ない方が間違いが少ないという考え方もあります。

基本的に、ソースコードは、他の人に見せるものとして作るのが基本です。
他の人が見てもわかるように作ります。

投稿日時 - 2018-02-18 14:45:51

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:46:40

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

Unix/Linuxには、indentというプログラムがあります。
https://linuxjm.osdn.jp/html/GNU_indent/man1/indent.1.html

これで、さまざまな標準形式に整えてくれますので、書くときはあまりこだわらずに書いて、適宜このプログラムで変換すると良いでしょう。

> 他人にコードを見せるわけではないのですが知識として覚えて置きたいと思っています。

ということであれば、標準的な GNU スタイル、Kernighan & Ritchie スタイル、 Berkeley スタイル を比べてみて気に入った物を使うといいかと思います。
上記ページの「一般的なスタイル」のセクションに書いてあります。

なお、indentコマンドは引数のファイルを「書き換え」ますので注意してください。

投稿日時 - 2018-02-18 21:26:29

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:48:04

ANo.5

https://www.gfd-dennou.org/arch/comptech/cstyle/cstyle-ja.htm
標準の書式を目指すならANSIのCで書きます。シュミシュミの世界です。

https://www28.atwiki.jp/msx-sdcc/pages/73.html
そのまえはK&Rでした。

投稿日時 - 2018-02-18 16:55:39

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:47:36

ANo.4

自分がわかりやすいように書けばいいです。
ただし仕事でやる場合にはコーディング規約として決められていることもあります。

投稿日時 - 2018-02-18 15:32:47

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:47:30

ANo.3

ぶっちゃけて言うといろんな流儀があって統一されてません。
大昔は端末で表示できる縦横の文字数が固定化されていたので、画面内になるべく多く表示できるように詰めて記述することが多かったのです。最近はウインドウ幅も文字フォントも自由自在なので見やすさを優先することが多いです。しかしどんな書き方が見やすいかは個人によって、あるいは経験によって変わってきますので、これはこれでいろんな流儀がある理由の一つです。

なお、チームで開発する時には、人によって書き方が異なるのはいろいろ面倒なので書き方を統一することがあります。その場合は記載を統一するために整形ツールを使うことが多いです。すると、それはそれでどんな書き方をしても最終的にはツールが整形してくれるので、自分の書きやすいように書けばいい、ってことになります。

コーディング規約とか字下げスタイル、などのキーワードで検索してみるといろいろ情報あります。

投稿日時 - 2018-02-18 14:51:35

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:47:15

ANo.1

私は過去にプログラマをやっていて、そのときは
int main(void)
{
}
この記述を使っていました。

文法エラー云々が無ければ、個人で学習して個人で使う分にはどの記述でも良いと思います。しかしプログラム開発等を行う会社の場合、会社によっては記述方法を明確に決めているところもあります。

当然プログラムとして成り立っていることは基本ですが、記述方法も解りやすさが必要でしょう。プログラムを開発してシステムを完成、納品となりますがその後のメンテナンスも必要になります。不具合・機能追加・仕様変更等々でプログラムの更新等が必要になってきますが、その時に最初の開発者が退職等で不在になった場合、誰かが引き継がなければなりません。その時にわかりづらい記述になっていると結構大変です。

(i=0;i<5;i++)は(i=0; i<5; i++)と記述していた気もしますが、スペースを入れなかったような気もします。なんせ30年以上も前の話なんで…。だしコメントは出来る限りつけていましたが…。

当時、C言語ではありませんがBASICのシステム(個人の小さな会社が開発・商品化されているもの)の改修の仕事がありました。実際に動かしたり説明書等を読んで何をやっているのかは理解できましたが、ソースコードを見たとたん絶句しました。上から処理命令が淡々と下へ向かって記述されているのですが、所々でgotoが多用、典型的なスパゲッティでした。システム内容は専門分野的なものでしたが、コーディングは初心者に毛が生えたレベルでした。

改修を実現するにはまず構造化にしないと何ともならず、試行錯誤はしたのですが、試運転をすると結果がおかしい!。改修内容自体はそれほど難しいものではなく、入力・修正をしやすく見た目もスッキリさせると言う内容だったので、当時の社長も簡単に(良い顔しーのお友だち感覚・なーなーで)引き受け納期も僅か。まあ私もまだ若く経験も浅く力不足だったのもあるのですが、ソースjコードの解析に思わぬ時間を取られ結果タイムオーバー。客からはブーブー言われるわで…でも私も言いたかったが立場的に言えない。ハァ!。せめてコメントを付けて置くなりフローチャートぐらいは描いておいて欲しかったと…。

個人での利用で誰にも見せることは無いかもしれませんが、もしその道に行こうと思うなら第三者が見ても見やすく解るような記述が出来るように学んでください。長文で失礼しました。

投稿日時 - 2018-02-18 12:17:35

お礼

回答有り難うございまいた。

投稿日時 - 2018-02-19 18:46:14

あなたにオススメの質問