ユーニックス総合研究所

  • home
  • archives
  • c-nanigadekiru

C言語で何ができるのか?コマンド、OS、GUIアプリ?

  • 作成日: 2022-09-18
  • 更新日: 2023-12-25
  • カテゴリ: C言語

C言語で何ができる?作れるものは?

C言語をマスターすると何ができるようになるのでしょうか?
むずかしいC言語をマスターするにも何か目的が欲しい……。

そういう人は多いかと思います。
実はC言語で作れるものはいろいろあります。
よくC言語は低級言語だと馬鹿にされることもあります。
しかしそんなことはありません。

C言語はマスターすると色々なものを作れるようになる高級言語です。

この記事ではC言語で何ができるのか具体的に解説します。

関連記事

目が覚めるC言語のdo-while文の使い方【ループ処理、初心者向け】
明快!C言語のcontinue文の使い方
君はまだC言語のdefineのすべてを知らない【マクロ、プリプロセス】

魔法の壺、プログラミングのライブラリ(Library)とは
頭悪い人にプログラミングは可能か?可能です
開発を3倍速にするプログラミングの考え方4つ

C言語で作れるものはこれだ!

では結論から入りましょう。
C言語で作れるものは何か?
それはずばり↓です。

  • コマンド
  • OS
  • 言語
  • 組み込みソフト
  • GUIアプリ
  • ゲーム

このようにC言語はマスターすると色々なものを作れるようになります。
けっこう色々あって驚かれた方もいるのではないでしょうか?
しかしこれは事実です。

C言語も向いてないものはありますが、マスターすれば幅広く色々作れるようになります。

コマンド

コマンドとは端末から打ち込むタイプのソフトウェアのことです。
よく映画とかでハッカーが黒い画面に何か文字を打ち込んでますよね?
この黒い画面が端末です。

あれはハッカーがコマンドを実行するために文字を打ち込んでいるのです。
コマンドは文字だけで構成されるソフトウェアで、見た目も文字だけです。

  • コマンドは文字だけのソフトウェア

使うときはコマンド名を端末に打ち込み、エンターキーを押します。
そうするとコマンドが起動し実行されます。

コマンドは非常に一般的なソフトウェアです。
色々な分野で利用されています。

たとえばWindowsやLinuxなどのOSには標準で色々なコマンドが入っています。
端末からそのコマンドを起動すればいつでも使うことができます。

  • Windowsにも標準で色々なコマンドが入っている

試しにWindowsならコマンドプロンプトを起動してみてください。
コマンドプロンプトは「Windowsキー + Rキー」を押して出てきたウィンドウに「cmd」と入力してエンターキーを押します。
そうすると黒い画面が起動します。

その黒い画面に「ipconfig」と打ち込んでみてください。
自分のパソコンのローカルIPアドレスが表示されると思います。
この「ipconfig」がコマンドの一種です。

OS

OSとはオペレーションシステムのことです。
これはパソコンが色々なデバイスとソフトウェアを繋げるために使われます。

OSが入ってないパソコンはただの箱です。
パソコンはOSがインストールされることで生き生きと活動を始めます。

  • OSはパソコンの性格とも言える

たとえばマイクロソフトのWindowsなどもOSの一種です。
ビル・ゲイツ氏はWindowsを開発して巨万の富を得ました。
OSというのはそれだけの力を秘めているソフトウェアです。

ほかにはリナス氏が開発したLinuxも有名です。

Linuxはスマホのアンドロイドなどにも使われる(というかそのもの)世界で1, 2を争うほど有名なOSです。
これは世界中の開発者が毎日のように開発を続けています。

  • WindowsもLinuxもC言語で開発された

C言語はもともとOSを開発するために作られた言語です。
WindowsやLinuxもC言語で開発されています。
そのためC言語でOSを作るのは王道であると言えます。

🦝 < C言語でOSを開発する。それってベターだよね

言語

C言語は速度がとても速い言語です。
そのためプログラミング言語のような速度を必要するソフトウェアも作ることができます。

じっさいC言語で開発されているプログラミング言語は非常に多いです。
たとえばC++も最初はC言語で書かれていました。
それからGoも最初の実装はC言語で実装されました。

あとはPythonRubyといったインタプリタ言語もC言語による開発です。

  • C言語で開発された言語
  • C++
  • Go
  • Python
  • Ruby
  • etc...

プログラミングをやる上でプログラミング言語を開発するというのは非常に魅力的な仕事です。
自分のプログラミング言語を開発すればその世界を自分の思うように作ることができます。
そして他人の言語を使うという不自由さから解き放たれて精神的な自由を得られます。

C言語をマスターすればその自由を手に入れることもできるということです。
どうですか、魅力的な話ではないでしょうか?

組み込みソフト

他には組み込みソフトの開発もC言語で行えます。
たとえばArduinoなどはC言語でソフトウェアを書きライトを点滅させたりセンサーを利用したりすることも可能です。

組み込みの世界ではC言語による開発が一般的です。
電子レンジなどの家電、そしてパチンコなどC言語で開発されることも多いです。

  • 組み込みの世界では人気者のC言語

IoTというすべての機材がインターネットに接続する世界においてC言語の役割は非常に重要です。
機材のソフトウェアを書くときに第1に選択肢に上がるのがC言語だからです。

C言語は非常にコンパクトでメモリも自分の思うように制御できます。
そのため組み込みのような小さい機器に搭載するのにはうってつけなわけです。

🦝 < C言語は小さくてパワフル

🐭 < C言語かっこいい!

GUIアプリ

それからC言語はGUIアプリの開発も出来ます。
GUIアプリとはいわゆる見た目がリッチなアプリです。
ウィンドウやボタンなどが配置されているアプリです。

たとえばC言語にはGtkというGUIライブラリがあります。
これを使えばWindowsやLinuxで動作するGUIアプリを作ることも可能です。

しかし最近はC言語はGUIアプリの開発ではあまり人気がありません。
GUIアプリのような複雑なアプリではC#やC++などが人気です。

C言語はけっこう原始的な言語なのでリッチなGUIアプリを作ろうとするとかなり大変です。

ゲーム

C言語を使えばゲームも開発できます。
たとえばSDLというゲームライブラリを使えば簡単に画像の表示や音楽の再生などを行うことができます。

今ではC++にその座を奪われましたが少し前のゲーム開発ではC言語は大変な人気でした。
プレステやセガサターンなどのゲームソフトウェアもC言語で書かれたものが多いそうです。

  • C言語で作られたゲームは数知れず

今のゲーム開発ではモダンでパワフルなC++が人気があります。
C++はC言語を拡張してオブジェクト指向プログラミングを行えるようにした言語です。
じっさいはマルチパラダイムといって色々なプログラミング手法を取り入れています。

  • C++はC言語の弟

C言語をマスターすればC++の学習のハードルも低くなるでしょう。
そういう意味でもC言語でゲームを開発するのは意味があることです。

C言語で色々作れるようになるには?

C言語で色々なソフトウェアを作れるようになるには具体的にどうしたらいいのでしょうか?
C言語も習得がむずかしい言語として有名です。
どの程度使えるようになればいいのでしょうか?

必要なものは↓です。

  • C言語の基礎をマスターしよう
  • ライブラリの使い方を覚えよう
  • デバッグ方法をマスターしよう

C言語の基礎をマスターしよう

C言語では何よりも基礎が大事です。
基礎をおろそかにするとC言語では開発は難しいです。

たとえば配列、構造体、動的メモリの扱いなどの基礎が必要になってきます。
こういった基礎を習得してそして何も見ないでも使えるようになる必要があります。

配列や構造体について具体的に知りたい場合は↓の記事もご覧ください。

またC言語には罠も多いのでその罠について知っておくのも大事です。
罠の一例としては↓の動画をご覧ください。

ライブラリの使い方を覚えよう

C言語のライブラリの使い方を覚える必要があります。
ライブラリを使うと作れるアプリが格段に増えます。

現代的なソフトウェアの開発ではライブラリを駆使して作るのが普通です。
逆にライブラリを使わないと非効率な開発になってしまうでしょう。

ただC言語で自作ライブラリを作ってそれを使って開発するというのも一般的な話です。
C言語は昔からある言語なので標準ライブラリもあまり現代的な機能がそろっていません。
ですので自分で現代的なライブラリを開発してそれを利用するというのも手です。

あるいはGLibのような有名な汎用ライブラリを使うのもいいでしょう。

デバッグ方法をマスターしよう

C言語の開発ではデバッグも重要です。
デバッグとはバグを取り除く作業のことを言います。

C言語は例外などの現代的なエラー機構がありません。
そのため返り値でエラー処理をするのが普通です。

  • C言語には現代的なエラー機構がない

しかしポインタなどに不正なアドレスが入っていた場合はプログラムが静かに落ちることもあります。
そうなるとバグの解決はかなり難しいです。

ですのでGDBなどのデバッガやValgrindなどのメモリチェックツールを使ってデバッグするようにしましょう。

C言語で作るもの。何がおすすめ?

C言語で作るものは何がおすすめか?
というところですが、おすすめは↓です。

  • コマンド
  • OS

最初はコマンドから開発しよう

コマンドは文字だけのソフトウェアですが世界中で使われています。
また最初のソフトウェア開発の入門としても最適なソフトウェアと言えます。

コマンドを作ってソフトウェアの基礎を学べばその知識はGUIアプリなどにも応用できます。
便利なコマンドを作ってGitHubなどで公開すれば他の開発者からのリスペクトも得られるでしょう。

OSを開発してみよう

またC言語をやるからにはやってみたいのがOS開発です。
C言語はOSを開発するために生まれた言語です。
ですのでC言語をマスターしたらOSはぜひ作っておきたいところです。

先人はC言語で何を作った?

C言語を扱う先人たちはC言語で何を作ったのでしょうか?
代表的なソフトウェアは↓になります。

Linux

すでに解説したようにLinuxはリナス・トーヴァルズ氏が開発したOSです。
リナスはMinixというOSに影響を受けてLinuxの開発を始めました。

C言語による開発でコメントなどは流ちょうな英語を使って書かれました。
Linuxはその後大きな人気を獲得。
GitHubでのスターは13万5千を超えています。

リナスが30年前に開発したOSは世界のいたるところで使われるようになりました。
あなたの身近にもきっとLinuxが存在しています。

Ruby

Rubyは日本人のまつもとゆきひろ氏が開発した世界的に有名な言語です。
プログラマーが楽しくコードを書けるように設計されており大変人気があります。

日本が世界に誇れるソフトウェアの1つがこのRubyであると言えます。

おわりに

今回はC言語で何ができるのか解説しました。
C言語でできることは無限大と言ってもいいかもしれません。
マスターして色々開発しちゃいましょう。

🦝 < C言語マスターに

🐭 < 俺はなる!