質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

4415閲覧

モダンなC言語の書き方について

rok6

総合スコア241

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/05/22 09:03

諸事情によりC言語を勉強することとなりました。
とりあえずは構造体を用いたデータベースへの接続・データ取得が目標になります。

そこで、これからCを勉強するにあたり、
現段階でのC言語の書き方というものを教えていただきたいです。
もしくは参考になりそうなサイト・書籍等がありましたら・・・。
※実際の開発現場環境がどうとかは無視して、
「今やるならこれがベスト」というものでお願いします。

http://postd.cc/how-to-c-in-2016-1/
こちらを見ると
・ char は使うべきではない
・ stdint.h の int8_t...int_fast8_t...等を用いる
みたいなことが書いてありますが、実際のところどうなのでしょう。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/05/22 09:50

C を選ばなければならないということは、ハードか何かの縛りがあるのでしょう。それを書かれた方が適切な回答がつくと思います。
rok6

2017/05/22 12:40

状況的にはすでにCで書かれたテンプレートファイルを基にして拡張していく、みたいな感じなので、どう書けばいいかはそのテンプレートファイルを見ればいい話なのですが、せっかくCをやるので昔のCの書き方と違って今はどう変わってるのか知りたかったんですが、質問内容ちょっとわかりにくいですね。もっとわかりやすく書ければいいのですが・・・。
guest

回答2

0

ベストアンサー

こんにちは。

直接の回答にならないかもですが。

リンク先の記述で一番賛同できるのは下記です。

C言語の第1のルールは、「もし避けられるならC言語を使うな」ということです。

超小型CPUでC++コンパイラがないようなケースや、C言語で開発されたプロジェクトの改造でない限り、C言語ではなくC++を使った方が遥かに生産性が上がります。

超小型CPUの場合は、モダンかどうかを気にする意味はあまりないです。完全に高級アセンブラとしての用途ですから、「マルチ・プラットフォーム」な設計をするより対象CPU向けに最適化するべきかと。
既存のプロジェクトの改造ならば、そのプロジェクトのコーディング・ルールに従った方がスマートと思います。

「charを使うな」はナンセンスです。標準ライブラリがchar型を使います。文字列を扱うならやはりchar型を使うべきです。文字列を扱わないようなアプリならばcharを使わないことはあるかも知れませんが、エラー・メッセージ1つ生成しないってかなりレアかと。

int8_t等については、他のCPUとデータ交換する際には使うと非常に便利です。
それ以外のケースではそれほど拘らなくてもよいように感じます。

ところで、リンク先についてはstdint.hで定義されている型の使い方で話題に上がっています。参考になると思います。

投稿2017/05/22 10:00

編集2017/05/22 10:01
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rok6

2017/05/22 12:56

ご回答ありがとうございます。確かに実際やるならC++のほうがいいですよね。 今回は参加するプロジェクトがCで書かれたテンプレートファイルを基にするものであり、Cを使うということが確定していて、その上で私はCはちょろっと触ったくらいだったので、丁度勉強にと思いこのような質問をさせて頂きました。 実際の記述に関しては今回はテンプレートファイルがあるのでそれを参考にしつつ、モダンかどうかを気にせず改めて復習し直していくことにします。 それと、リンク先大変勉強になりました!こちら回答をベストアンサーにさせて頂きたいと思います。
guest

0

もしくは参考になりそうなサイト・書籍等がありましたら・・・。

書籍なら「モダンC言語プログラミング」を推薦しておきます。


(個人的な感想)リンク先「2016年、C言語はどう書くべきか」の内容は大筋合意ですが、一部の強い断定口調には違和感があります。とりわけint型を使うなの下りは、C言語では計算過程での整数拡張を避けられないこともあり、問題を潜在化させるだけにしか思えずあまり賛同できません。

投稿2017/05/22 12:41

yohhoy

総合スコア6191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問