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

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

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

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

Q&A

11回答

7387閲覧

C言語で面白い事ありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

4クリップ

投稿2015/10/03 15:35

最近C言語を改めて勉強し直しているんですが、面白い事って何かありますか?
普段はWebアプリを高水準言語で作成しています。こっちでは面白サービスを作るのが目的ですが、Cでも目的として面白いものが作りたいです。

抽象的な質問で申し訳ないのですが、自分が面白いと持ったのはソケット通信です。自分でサーバを作ってて立てて通信させる。という単純なものでしたが面白く感じました。
ですが、あまり目的がないように感じられました。

何か目的をもって取り組みたいのですが、C言語に詳しい方、Cならこんなことが出来るとか、おもろいことがあれば教えていただきたいです。よろしくお願い致します。

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

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

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

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

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

guest

回答11

0

身も蓋もないですが、「Cが」面白い、ということはないかと思います。得手不得手はありますが、今時の高水準言語でできないことは、まずありません。OSですら、その気になればJavaで書くことも十分に可能です。

では、なぜ、Cは使われ続けているのでしょうか。他の方々が指摘する特徴

  1. 小回りが利く
  2. 高速に動作する
  3. ライブラリが多い

は、確かに事実ですが、決定的な要因ではないと思います。本当の理由は、

  1. 使う人が多い

( http://qiita.com/tadnakam/items/0f724e7cb0f3a0f0f64f )

からです。私は、Cの最大のメリットが、多数人からレビューを受けられることだと考えています。

本当のところ、Cは面白いのです。それは事実です。面白さは、言語そのものだけでなく、コミュニティに求めてもいいと思うのです。

投稿2015/10/06 05:15

majiponi

総合スコア1720

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

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

sk_sat

2016/06/27 09:36

「OSですらその気になればJavaで書くことも十分に可能」というのはさすがに言い過ぎではないでしょうか。 最低限必要な部分(たとえば、IPLなどはJavaで書くことは不可能)とJavaVMを実装すれば、「OS」のほとんどの部分をJavaで作ることは可能かもしれません。 しかし、JavaVMを実装するために大量のAPIが必要になり、おそらくJavaVM及びそのためのAPIがコードのほとんどを占めてしまいます。 そのため、「JavaでOSを書く」というのはさすがに無理がある気がします。 「Cの面白さ」とは関係ないですが、気になったので投稿しました。気分を悪くさせてしまったらすみません。
guest

0

面白いかどうかはわかりませんが、 IOCCC というものがあります。公式サイト(英語)

投稿2015/10/03 16:47

yohhoy

総合スコア6191

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

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

NipponNo

2016/06/19 09:34

私は、理系ではないのに、C言語と関わったお陰で、組み込み系のエンジニアと画像処理モニター表示やデータベースに関わるプロジェクトに加わることが出来ました。 組み込み系のエンジニアには悪い印象はありませんが、データベースの操作も勉強すると、仕事に幅が産まれるのかもしれません。 私は文系で、組み込み系のエンジニアには絶対なれないですが、これから先は業務系のエンジニアと組み込み系のエンジニアが協力して新しい世界が成立すると、互いに面白くなると期待しています。 私には組み込み系のエンジニア技術はわかりませんが、データベースを勉強するなら、マイクロソフトのアクセスを土日に専門学校で勉強することをオススメします。 それにプラスしてWeb開発の基本的なhtml,css,javascriptを勉強して自宅でWebサイトを自作するのです。C言語の業務系のプログラムは証券会社やセキュリティの厳しい分野で採用されていたので、規模の大きなプロジェクトに参加出来るチャンスもあるかもです。 わたしは、C言語からオラクルへの移植も経験しました。 C言語の面白さはC言語を採用している企業にあるのかも知れないです。 あいまいな回答でごめんなさい
guest

0

普段Webアプリを作っているなら、それらの言語向けのライブラリをCで作るのもいいかと思います。あまり知られていないけどとても有用なC/C++で書かれたライブラリをPythonやRubyから使えるようにして、pipやgemで入れられるようにすれば、一躍有名になれますよ。

ライブラリなんてよくわからないって場合でも、普段のWebアプリでやけに重い部分をCで書き直すなんてすると、実用的かつ面白いかも知れませんね。

投稿2015/10/03 22:09

raccy

総合スコア21735

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

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

0

楽しそうな話題が上がっているので、私も。

ファームウェアをC言語で書いて制御するってマジ楽しいと思います。
ここでもラズベリーパイって良く見かけますね。このようなハードが安いし、開発ツールも事実上無料と言う幸せな時代です。

ハードウェア制御に興味がない時は、Windows SDKを直接制御して簡単なWindowsアプリを作り、Windowsの基本的な仕組みが理解するのも有用ですね。メッセージ・ループとかですね。

また、LinuxならLinuxのコードを読むってなかなか歯ごたえがありますよ。OSの基本的な仕組みを理解でき、ものすごく力が付くと思います。
ついでにC++の有り難みが身にしみます。C言語でバリバリ「仮想関数」を使っていますから。

投稿2015/11/07 16:11

Chironian

総合スコア23272

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

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

0

目的をもって勉強ということですので、
高水準言語に慣れていてスレッドの理解があるのでしたら、
C言語でマイクロスレッド(Fiber)の自作に挑戦するのはどうでしょう?

プログラムカウンタや、スタックポインタの理解に役立つと思います。

将来的にどういった環境で開発していても
このあたりの基礎知識は、理解しておいて損は無いです。

また、自作し最適化されたマイクロスレッドは
一般的にAPIが提供するものより高速なものに仕上がるケースが多いので
あなたが将来関わる開発において切り札の1枚となるような
実用性の高いものを目指してみてはいかがでしょうか。

投稿2015/11/06 16:23

higetarou

総合スコア57

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

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

0

Cを言語として捉えるなら他の言語よりもよりハードウェアに近い制御が出来る事でしょう。
もともとアセンブラとの親和性が高いので、他の言語に比べてより低位の部分を動かす事が出来ます。
最近の高級言語はこの低位の部分を考えなくて良いようにライブラリ等で提供されていますね。

私はC言語が一番好きですが、それはファームウェアという分野で開発しているからだと思います。
PCやスマホ上で、すでに用意されたライブラリを使って作る場合は、言語はぶっちゃけ何でも良いです。

しかしファームウェアの世界は「機器を直接制御する」ことができるので、この世界の楽しさは
PCやスマホには無い楽しさがあります。マイコンを直接動かし、LEDを点けたり音を出したり
すべて一から作る事が出来ます。
それにはC言語が最適です。この業界では必須言語と言っても良いでしょう。

「言語の楽しさ」よりも「制御する楽しさ」がこの世界にはあります。

投稿2015/11/06 03:03

Gusty

総合スコア20

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

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

cateye

2015/11/07 13:35

Cとは関係ないかもですが・・・マイコン制御は楽しいですねd^^ TSSもどきのOSならすぐ作れるし(一度で完結する処理ならレジスタ退避すら要らない)、実行キューすらなくても、タスクを登録すればちゃんと処理が動きます・・・v^^
Gusty

2015/11/09 07:20

RTOSを使うと一段と楽しくなりますよね! 逆に一度使っちゃうと戻れませんが(笑)。
guest

0

いろいろな言語処理系は大抵Cで書かれています。
そっち方面に興味がおありでしたらCはとても面白いと感じると思います。

また、Androidアプリを作るなら普通Javaですが、Qt という開発環境では
C (C++※)でAndroidアプリが作れます。
Javaの様に、様々なプラットフォーム向けのアプリがC(C++)で簡単に作成できます。

※「よりよいC」としてC++を選択するのは良いことです。
C++はCの改善点を多く含んでおり、はじめてCに入門する方でもコンパイラは
C++を使う事をおすすめしたいです。C++だからといって OOP
(オブジェクト指向プログラミング) しなければいけないとか、
なにか難しい書き方を覚えなければいけないとかはありません。
C++で普通にCのコードを書いてくださいb

投稿2015/10/06 16:34

umeaji

総合スコア101

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

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

0

C言語と高水準言語を比較して、メリットを考えた時にざっと思いついたのは以下です。

  • 処理速度を速くできる( 高水準言語で行われている冗長な処理を省ける。コンパイラが洗練されている。 )
  • H/Wの機能を使える( ソケット通信はこの一種だと思います。 )

OSがC言語で書かれている事が多いのもこの辺りが要因と考えています。OSのコードを読んだり、あわよくばパッチを送ることを目的にすることも出来ると思います。

逆説的ですが、普段高水準言語でやれている事をC言語でやろうとすると、こんなに面倒なんだという事を理解して、高水準言語の良さを知るとか。

最終的には何を面白いと思うか次第になると思います。

投稿2015/10/04 03:10

MIURA_Yasuyuki

総合スコア306

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

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

0

ruby から C/C++ で作成機能を呼び出すことができます。
ruby では作りに悔いが、C/C++ ではすでに実装されている、作りやすいといったものを ruby, java, pho, ... などから呼び出せるようにして、web アプリに機能追加してみてはいかがでしょう。

投稿2015/10/03 23:18

katoy

総合スコア22324

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

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

0

今の若いもんわ!
CPUに直接命令を与えて動かす楽しみをわかってない(--;

それって理系じゃなくて文系の仕事じゃぞ?

まぁOSがある今ではマイコン以外は直接ってのはムリでAPI叩く程度だけどさー。

せめてメモリのポインタいじくり回す醍醐味をわかってくれたらのぅ。

高級言語やOSに守られた現代のプログラマはコンピュータの本当に楽しいとこを知らずに不憫じゃのう..

投稿2016/01/12 19:44

mike

総合スコア118

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

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

0

面白い基準は難しいですが、
C言語は、LinuxやUnixなどのOSの開発言語ですので
OSのソースコードをみるのも面白いと思います。

投稿2016/06/19 14:47

ai_2013_dev

総合スコア338

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問