最近C言語を改めて勉強し直しているんですが、面白い事って何かありますか?
普段はWebアプリを高水準言語で作成しています。こっちでは面白サービスを作るのが目的ですが、Cでも目的として面白いものが作りたいです。
抽象的な質問で申し訳ないのですが、自分が面白いと持ったのはソケット通信です。自分でサーバを作ってて立てて通信させる。という単純なものでしたが面白く感じました。
ですが、あまり目的がないように感じられました。
何か目的をもって取り組みたいのですが、C言語に詳しい方、Cならこんなことが出来るとか、おもろいことがあれば教えていただきたいです。よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答11件
0
身も蓋もないですが、「Cが」面白い、ということはないかと思います。得手不得手はありますが、今時の高水準言語でできないことは、まずありません。OSですら、その気になればJavaで書くことも十分に可能です。
では、なぜ、Cは使われ続けているのでしょうか。他の方々が指摘する特徴
- 小回りが利く
- 高速に動作する
- ライブラリが多い
は、確かに事実ですが、決定的な要因ではないと思います。本当の理由は、
- 使う人が多い
( http://qiita.com/tadnakam/items/0f724e7cb0f3a0f0f64f )
からです。私は、Cの最大のメリットが、多数人からレビューを受けられることだと考えています。
本当のところ、Cは面白いのです。それは事実です。面白さは、言語そのものだけでなく、コミュニティに求めてもいいと思うのです。
投稿2015/10/06 05:15
総合スコア1722
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
楽しそうな話題が上がっているので、私も。
ファームウェアをC言語で書いて制御するってマジ楽しいと思います。
ここでもラズベリーパイって良く見かけますね。このようなハードが安いし、開発ツールも事実上無料と言う幸せな時代です。
ハードウェア制御に興味がない時は、Windows SDKを直接制御して簡単なWindowsアプリを作り、Windowsの基本的な仕組みが理解するのも有用ですね。メッセージ・ループとかですね。
また、LinuxならLinuxのコードを読むってなかなか歯ごたえがありますよ。OSの基本的な仕組みを理解でき、ものすごく力が付くと思います。
ついでにC++の有り難みが身にしみます。C言語でバリバリ「仮想関数」を使っていますから。
投稿2015/11/07 16:11
総合スコア23274
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
目的をもって勉強ということですので、
高水準言語に慣れていてスレッドの理解があるのでしたら、
C言語でマイクロスレッド(Fiber)の自作に挑戦するのはどうでしょう?
プログラムカウンタや、スタックポインタの理解に役立つと思います。
将来的にどういった環境で開発していても
このあたりの基礎知識は、理解しておいて損は無いです。
また、自作し最適化されたマイクロスレッドは
一般的にAPIが提供するものより高速なものに仕上がるケースが多いので
あなたが将来関わる開発において切り札の1枚となるような
実用性の高いものを目指してみてはいかがでしょうか。
投稿2015/11/06 16:23
総合スコア57
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Cを言語として捉えるなら他の言語よりもよりハードウェアに近い制御が出来る事でしょう。
もともとアセンブラとの親和性が高いので、他の言語に比べてより低位の部分を動かす事が出来ます。
最近の高級言語はこの低位の部分を考えなくて良いようにライブラリ等で提供されていますね。
私はC言語が一番好きですが、それはファームウェアという分野で開発しているからだと思います。
PCやスマホ上で、すでに用意されたライブラリを使って作る場合は、言語はぶっちゃけ何でも良いです。
しかしファームウェアの世界は「機器を直接制御する」ことができるので、この世界の楽しさは
PCやスマホには無い楽しさがあります。マイコンを直接動かし、LEDを点けたり音を出したり
すべて一から作る事が出来ます。
それにはC言語が最適です。この業界では必須言語と言っても良いでしょう。
「言語の楽しさ」よりも「制御する楽しさ」がこの世界にはあります。
投稿2015/11/06 03:03
総合スコア20
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
総合スコア101
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
C言語と高水準言語を比較して、メリットを考えた時にざっと思いついたのは以下です。
- 処理速度を速くできる( 高水準言語で行われている冗長な処理を省ける。コンパイラが洗練されている。 )
- H/Wの機能を使える( ソケット通信はこの一種だと思います。 )
OSがC言語で書かれている事が多いのもこの辺りが要因と考えています。OSのコードを読んだり、あわよくばパッチを送ることを目的にすることも出来ると思います。
逆説的ですが、普段高水準言語でやれている事をC言語でやろうとすると、こんなに面倒なんだという事を理解して、高水準言語の良さを知るとか。
最終的には何を面白いと思うか次第になると思います。
投稿2015/10/04 03:10
総合スコア306
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ruby から C/C++ で作成機能を呼び出すことができます。
ruby では作りに悔いが、C/C++ ではすでに実装されている、作りやすいといったものを ruby, java, pho, ... などから呼び出せるようにして、web アプリに機能追加してみてはいかがでしょう。
- C++で実装した class を rb++ を使って、ruby 拡張ライブラリにして、ruby から呼び出してみる http://qiita.com/kasei-san/items/e76c4cbee5a0aa467433
- BundlerでCのソースを含んだGemは簡単に作れる http://qiita.com/ymmtmdk/items/c2a9f233eeb33e5d18e2
投稿2015/10/03 23:18
総合スコア22328
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
面白い基準は難しいですが、
C言語は、LinuxやUnixなどのOSの開発言語ですので
OSのソースコードをみるのも面白いと思います。
投稿2016/06/19 14:47
総合スコア338
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/27 09:36