メインメニューを開く

差分

C言語

645 バイト追加, 2024年2月9日 (金)
編集の要約なし
'''C言語'''(読み:しーげんご、英語:C)とは、汎用の(読み:しーげんご、[[英語]]:[[C]])とは、汎用の[[プログラミング言語]]である。
== 概要 ==
C言語は[[ベル研究所]]の[[デニス・リッチー]]によって、同社の[[アセンブラ]]で書かれており[[移植性]]クソ食らえな[[UNIX]]を、現実的な移植性に引き上げるために開発された[[プログラミング言語]]である。現実派である。である。現実派である。
英語圏では「C」1文字で呼ばれているが、何の話をしているのか一般人にはまったく伝わらないので日本では末尾に「言語」を付けることが多い。英語圏では「[[C]]」1文字で呼ばれているが、何の話をしているのか一般人にはまったく伝わらないので日本では末尾に「言語」を付けることが多い。
== 難易度 ==
[[アセンブラ]]の[[ニーモニック]]を丸暗記するどころか[[アルファベット]]を覚えるより簡単である。
難しいと言われるゆえんはC言語が単純であるが故に、基本より先は様々な[[コンピューター]]や[[OS]]の[[低レベル]]な知識や、あらゆる[[アルゴリズム]]を熟知し、単純な物で複雑な物を作り上げなければならないという点によるものである。例えるならば、レゴブロックは基本的に幼児でも簡単に扱えるが、レゴブロックで複雑な構造物を作るとなるとアホみたいに難しいのと同一の問題である。を熟知し、単純な物で複雑な物を作り上げなければならないという点によるものである。例えるならば、[[レゴブロック]]は基本的に幼児でも簡単に扱えるが、レゴブロックで複雑な構造物を作るとなるとアホみたいに難しいのと同一の問題である。
また、文字列処理に特化した[[Perl]]や、[[Webアプリ]]に特化した[[PHP]]やのように、特定の目的に特化した[[プログラミング言語]]とは異なり、[[汎用性]]が高いがゆえに[[工数]]が増大するという点も難易度が高いと言われる原因であると思われる。レゴブロックでガンダムを再現するより、ガンプラでガンダムを再現する方が簡単(工数が少ない)なのは言うまでもない。が増大するという点も難易度が高いと言われる原因であると思われる。レゴブロックでガンダムを再現するより、ガンプラでガンダムを再現する方が簡単(工数が少ない)なのは言うまでもない。
以上のことから導きだされる結論は「簡単」である。
=== Windows ===
[[Windows]]では[[IDE]]である[[Dev-C++]]を[[インストール]]するのが簡単である。適切な種類をするのが簡単である。適切な種類を[[ダウンロード]]すれば、もちろん[[コンパイラ]]も付いてくる。
libpngなど、一般の[[libpng]]など、一般の[[ライブラリ]]を[[make]]したい場合、したい場合は[[MSYS]]も入れておくとよい。
=== Linux ===
多くの[[Linuxディストリビューション]]では[[インストール]]時に適切な設定をすれば、最初から[[gcc]]が使えるはずである。gccが無い場合、が使えるはずである。gccが無い場合、[[tcc]]コマンドや[[cc]]コマンドを試してみよう。
gccまたはtccが使えることを確認したら、あとは自分の好きな[[テキストエディタ]]を用意するだけである。
=== Mac ===
{{stub}}[[Mac OS X|OS X]]の標準構成にCコンパイラは含まれていないが、[[アップル]]が無償配布している[[IDE]]の[[Xcode]]をインストールすることで、他の[[BSD]]系[[OS]]と大体同じようにC言語を扱えるようになる。
=== Android ===
== 派生言語 ==
* [[C++]]
* [[Objective-C]]- C言語のメモリ安全性と[[Smalltalk]]の速度を併せ持った言語である。
* [[Java]]
; 類似言語
* [[C Sharp|C#]]- 構文の見た目がC言語に似ている。だが実は[[Turbo Pascal]]の派生言語である。* [[JavaScript]]- 構文の見た目がC言語に似ている。
== 関連項目 ==
{{reflist}}
{{stub}}[[category: プログラミング言語]]