• ベストアンサー

CやC++の言語について

これからCを使ってプログラミングをしようかなと考えているのですが、Cについて調べていると、C/C++はパワーがあり柔軟性があるということが書かれていたんですが具体的にどういうことなのかよくわかりません。具体例をあげるとどういうことなのでしょうか?回答よろしくお願いします。┏o

質問者が選んだベストアンサー

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.4

アセンブラに近い、と言われて、何のことだかわかりましたか? 基本的にCPUは、0と1の組み合わせで出来た命令(マシン語)しか理解できません。また、このような命令セットはCPUの種類によって異なります。これを人間が読めるようなアルファベットの記号に対応付けたものをニーモニック表現と呼んでいます。アセンブラというのは、このニーモニック表現で書かれた命令をマシン語に翻訳する変換プログラムのことです。(ニーモニック表現のことをアセンブリ言語といったりします。) C言語は、UNIXというOSを開発する過程で作られました。(UNIXはもともとアセンブリ言語で書かれていました。)C言語はCPUを制御するOSを記述する目的で作られたため、アセンブリ言語に近いことが出来ます。例えば、メモリのアドレスを指定して中身を直接書き換えたりすることも可能です。(こういった使い方は非常に便利ですが、使い方を間違えると致命的な不具合を引き起こしてしまう諸刃の剣です。)これが、「C言語はパワーがある」といわれる理由なのだと思います。 今日、BASIC, Fortran, COBOL, Pacal, Java, C#, Perl, PHP, Pyson など様々なプログラミング言語がありますが、ハードウェアの制御を直接記述できる言語はアセンブリ言語、C/C++、ごく一部のマイコン用BASICくらいです。 C言語は汎用性が高いため、様々なCPUで使えるようになりました。(対応するCコンパイラが作られました。)サーバやパソコンで動くプログラムだけでなく、マイコンで動くプログラムもC言語で書かれているものがほとんどです。(アセンブリ言語で書かれているものも沢山あります) C言語はCPUを直接制御するような機械よりのプログラムから、3Dグラフィクスを動かすプログラムまで幅広く使われています。 C++はCをオブジェクト指向(ソフトウェア設計法論の一種)向けに拡張したスーパーセットで、今日のMicrosoft Windows 上で動くプログラムの多くが、C++ で記述されています。

その他の回答 (5)

回答No.6

C++/C は何でもできるし、C++/C で作ったプログラムは、実行速度が早い。という意味なんでしょう。 ただ、いまどきのプログラマーに何もかも自分で作る人はいないと思います。作りたいもの、つまり目的があって、それにあった言語を選ぶのが賢いと思われます。C/C++ は生産性が低い言語の代表格です。 VBで数行で済むようなコードもCでは100行を超える事も珍しくありません。 お勉強でCをやる予定でしたら、Cは無視してC++から始めてください。Cで下手に慣れてしまうと、次のステップであるオブジェクト指向言語の学習効率が下がるからです。

  • buihyaku
  • ベストアンサー率29% (97/326)
回答No.5

要するにC/C++は細かいことができる=細かいことをしないといけないという感じかとおもいます。 それに対し、VBなどは用意されたパーツを組み合わせる形で比較的容易に目的を達成できますが、準備されたパーツでできること以外をするのは困難です。 旅行でたとえるならば、 VisualBasicなどは旅行に行くときにいくつか候補があるパッケージツアーのなかから目的、予算にあったものを選んで、それにオプショナルツアーを追加して旅を組み立てていく感じになります。細かい手続きを知らなくても旅を楽しむことができますが、自由度が少なくなってしまいます。 それに対しC/C++はすべて自分で手配する個人旅行のイメージになります。航空券、ビザの申請、宿の手配、レンタカーなどすべて自分で手配しないといけないため大変ですが、やりたいことはなんでもできます。 ちょっとかみくだきすぎでしょうか?もし失礼に感じられたらお許しください。

  • parapa
  • ベストアンサー率15% (42/273)
回答No.3

みなさんの意見もそうですけど 自分は、別の視点から ソースコードの書き方が柔軟性がある。

masa888r
質問者

お礼

ありがとうございます。助かります。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

C/C++はもっともアセンブラに近い言語ですので、できないことがほとんどありません。つまり、それだけパワフル(力技が使える)で、柔軟(何でもできる)わけです。しかも、アセンブラにはなかった移植性も手に入れることができます。 ただし、「できる」ということと「簡単」ということは同義ではないことに注意してください。簡単にプログラミングしようと思えば、特定用途向けの言語を使った方が間違いなく簡単です(引き換えに、パワーと柔軟性は失うかもしれませんが)。

masa888r
質問者

お礼

わかりやすい説明ありがとうございます。ほんとに助かります。

  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

WindowsがC言語で書かれている(らしい)から、Windowsに対して素直な命令が出せるから、じゃないかな? つまりWindowsがする動作は基本的にCのプログラミングで実現することをサポートしているということです。 (しかし関数と仕様が多すぎて、ぼくは個人で勉強してますが、勉強してもしてもし足りないですが・・。)

masa888r
質問者

お礼

なるほど~。ありがとうございます。助かります。 僕も勉強頑張ります。

関連するQ&A