• ベストアンサー
  • 困ってます

C言語の種類と特徴について教えてください。

java一辺倒なのでぼんやりとしかわからないのですが、 C言語の種類(C、c++、c#他)とそれぞれの特徴(何に向いているか等) を教えてください。 またそういった解説のあるHPも教えていただきたく。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数4685
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.3
  • terra5
  • ベストアンサー率34% (574/1662)

C言語はCだけで、C++やC#は別の言語です。 ただ、C++はCの拡張ですからCの直接の子孫とは言えるかも知れません。 VC++というのは、マイクロソフトが出しているC++の実装の一つですで、C++のコンパイラ、開発環境の製品の名前ですね。 Cはアセンブラに近いのでかなり高速に動くコードや、ハードウェア制御コードなどがかけます。が、機能的にはシンプルでいろいろと自分でコードを書く必要があります。ライブラリはありますが、Java等に比べれば貧弱で数は少ないです。 Cの特徴を生かしつつ、なるべく互換性を保ったまま機能拡張しオブジェクト指向の対応したのがC++です。 が、互換性を持ったまま機能拡張したのでかなり仕様が複雑になってます。また、拡張部はどうしても速度が落ちたりメモリを余分に使ったりしがちですので、アセンブラ変わりに使えない場合も出てます。(組み込み用途等) C#はJavaとあまり違わないと思っていいです。ごく簡単なものならソースもそのまま使える場合もありそうですし。逆に、C,C++とはあまり似てません。まあ、JavaがCと似ている程度には似てるとは言えますが(^^; #2の方の回答にもありますが、VC#(とVB.NETとVC++で出力をネイティブコードでなく、マネージコードを出力させた場合)は中間言語にコンパイルしてそれで動作するので、 そういう意味でもJavaと同じと言えます。 私が向くと思う言語はC++,C,C#ではこんな感じです。 十分マシンパワーのあるWindows(2000,XP等)上で動くプログラムを比較的お手軽に作るなら、C#。 Javaから楽に移行するならC#。 OSの機能をフルに使うなら、C,C++。 ちょっと非力なマシンで動作させるならC,C++。 Windows以外のOSなら事実上C,C++。 パワーのあるOS,マシン環境で高速に動作させ、比較的楽に作るならC++。 非力なマシン等で動作させるプログラムならC。 だいたいどこのOSでもコンパイラが存在するのがC。 ただ、Cのプロジェクトというのがどんなものか分かりませんが、それがCしか使わないのなら、 やはりCを学ぶべきだと思いますが。 この場合はC#は無関係なのでやる意味はありません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど!とても詳しい説明ありがとうございます。 今度Windowsサーバーで動作するアプリケーションを 作ることになりそうで、お客様からは要件だけ満たしていれば 開発言語など実装に関することは任せると言われてまして。 要するに言語の選択から検討するはめになってしまいまして、 ご相談した次第です。 私の今後のキャリアプラン的な意味からしてもC++でやってみたほうが よさそうかなぁと思っております。

関連するQ&A

  • C言語の種類

    C言語とかC++とかC#とか色々と種類がありますが、何が違うのでしょうか。あと、自分がどの種類のCを使ってるかはどうやったら確認できるのでしょうかまた、C言語におけるポインタの役割はメモリの節約という認識でよいですか? また、別件ですが、Javaという言語は何が出来るのでしょうか。 web系の言語なのですかね。

  • 最もポピュラーなC言語は?

    どなたか、現在最もポピュラーなC言語はなにか、教えていただけませんか. しばらくプログラミングから離れていましたが、このごろまた復帰しました. 昔のC言語で書いたソースを近代化するつもりで、C#に取り組みました. ところが、これでよかったのかどうか疑問になってきました. C#よりも、C++にすべきではなかったのでしょうか. あるいは、なにもC++とか、C#にしなくても、昔のC言語でもWindows上で働くようにできないかと言う疑問です. そこで、伺います.  現在、プロの世界で実際に実用されているC言語はいったいどれでしょうか? ボーランドも含めて、教えてください. よろしくお願いします.

  • C言語でのXMLファイル入出力

    初心者のため、くだらない質問かと思いますが、お付き合いください。 C言語でXMLファイルを読み込んだり、書き込んだりすることって可能なんでしょうか? 自分なりに探してみたのですが、C++やC#、JAVAばかりでC言語でというのが見つかりませんでした。 どなたかご教授ください。 お願いします。

    • ベストアンサー
    • XML

その他の回答 (4)

  • 回答No.5
  • todo36
  • ベストアンサー率58% (728/1234)

> 今度Windowsサーバーで動作するアプリケーションを 作ることになりそうで、 それなら、C#(Visual C# .NET)でしょう。 VC++と比較すると、生産性が違います。

共感・感謝の気持ちを伝えよう!

  • 回答No.4

> C++とVC++またはC#とVC#って違うんでしょうか? > マイクロソフトのものがVisual~? No.2 では、C++, C# は一般的な言語環境としてという意味合いで、いろいろな処理系が出ていますが、Visual C++, Visual C# は Microsoft が作った処理系という意味合いで書きました。深い意味はありません。 C++ は言語仕様が複雑なためか、処理系によってサポートしている機能が微妙に違うようです。参考URLの C++ 移植性ガイドが参考になります。

参考URL:
http://www.mozilla-japan.org/hacking/portable-cpp.html

共感・感謝の気持ちを伝えよう!

  • 回答No.2

その昔 C や java で書いていて、最近は主に Visual C++ ばっかり使っています。 C, C++ はアセンブラに近く細かい事まで出来るのが特徴です。また、最終的には各マシンの機械語(ネイティブコード)に変換されるので、実行速度が比較的高速です。その代わり、バグ等でポインタや動的メモリ管理の扱いを間違えるとメモリリークや保護違反などが発生しやすく、安定したプログラムを作るにはそれなりの熟練と十分なテストが必要となります。 C++ は C 言語を拡張しオブジェクト指向プログラミングも出来るようにしたもので、文法的にもほぼ上位互換で C++ の処理系では C も扱えるので、慣れれば断然 C++ の方が書きやすいです。また、オブジェクトを使って書く事で、全体の見通しが良くなる事で上記メモリ管理のトラブルは多少減らせます。(100%撲滅は困難ですが) C# は使った事が無いのですが、java よりも後に設計されただけあって、使っている人によっては java よりも良くて究極だと言っている人もいるようです。(何せ、Microsoft による java への対向軸ですから、十分 java の良い点・悪い点を研究して作られているようです。) 実際に使っていないので、以下はあちこちで見聞きした情報に基づきます。間違ってたらごめんなさい。 --- C#は、文法的には C を拡張していますが java の要素を盛り込まれていて、Visual C# 等では java のように中間コードに落して実行していると聞いています。そのため、.NET Framework が入っていないと動かない等の制約があるそうです。 ただし、メモリ管理は java のように GC(ガベージコレクタ)ベースで、システム側で勝手に開放してくれるので、C, C++ のように神経質にならなくても良いようです。 いかんせん使った事が無いので、これ以上の使用感等はわかりません。 (C#に詳しい方フォローして下さい…)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

詳しい解説ありがとうございます。 あほな質問で申し訳ないのですが C++とVC++またはC#とVC#って違うんでしょうか? マイクロソフトのものがVisual~?

  • 回答No.1

基本がC言語です。 C言語にオブジェクト指向をサポートさせたものがC++言語です。 C#は使った事ないですが、.NetFrameworkを利用できるC言語だって聞いた事があり、.NetFrameworkを利用しないならC言語の方が使いやすいと聞きました。 最初はC言語で基本を学んで理解できたらC++に移行するというのがいいのではないでしょうか。 あとC++はCの上位言語なので開発環境はC++のでもCの勉強はできると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 今度Cのプロジェクトを任されそうなので質問してみました。 C++を学ぶのが得策ですかね。

関連するQ&A

  • 各プログラム言語の特徴

     プログラム言語の特徴を教えてください。 汎用的なソフトが作れる事、またネットワークやデーターベースが(Apacheなどを使わず)扱える事。 当方素人のため、言語に謝りや追加される事もあります。 前の人の回答や補足も見て頂けると幸いです。 知りたいのは、習得の難易度/生産性/実行速度/主な開発ソフト/将来性、他。 もちろん、一つでも問題ありません。 Visual Basic Visual Basic .NET C言語 C+ C++ C# Visual C Visual C+ Visual C++ Visual C# Visual C# .NET D言語 JAVA Delphi Ruby  第4世代言語(?)で他にもありましたらお願いします。 日本語プログラムのひまわり/なでしこなんかもあるみたいですねー。

  • C言語より後に開発されたプログラミング言語は

    C言語を基にして開発されたのでしょうか? C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

  • C言語を覚えたいのですが

    こんばんは、C言語を学び始めようと思っているgcilts8551と申します。 C言語は工業高校時に簡単なものを習った程度の超初心者です。 質問したい事 1、本屋に行ってざっと見た感じ、C言語にはC、C++、C#とあるようですが、一から始めるならどれがお勧めでしょうか。 2、お奨めの本などあれば・・・(本屋で一応何冊か見ましたが、種類が多すぎてどれが良いのか判りませんでした・・・。) 3、お勧めの実行ソフトを御教え下さい。  (フリーは勿論、多少値段が張っても良いので、要素(属性?)別に色がついたりするソフトがあれば教えて頂けると嬉しいです。) 4、独学でも頑張れば本業としてプログラマーを目指せるのか 等、教えて頂けないでしょうか。 工業高校時代にプログラムの面白さを知って、本格的に覚えたいなと思ったのが切欠です。 とりあえず、やった事のあるC言語系から始めようと思い質問させて頂きました。 Cを学んでみて、なお面白かったら他の言語(今興味があるのはJavaやActionScript)も覚えたいと思っています。 ですので、頂けた回答を参考に色々検討して見ようと思いますので、御力を御貸し頂ければと思います。

  • C言語について

    ゲームプログラマーを目指しています。 学校ではまだC++とC#での2Dしかならっていなのですが・・・ 3Dゲームを作ってみたいと思っています。 3Dゲームをやるときは処理が早いほうがいいですよね? C++やC#やJAVAなどいっぱいあるのですがどれが一番処理が早いんでしょうか? ここにないものでもいいです。 独学でしようと思っているので批判みたいなのはやめてください。 回答よろしくお願いします。

  • C言語からC#を

    題名どうりC言語からC++を勉強しずにC#をやるのは難しいですか?

  • MPLAB C18のC言語について

    趣味でPICをはじめて、いままではアセンブラ言語でプログラムを書いてきました。 こんどPIC18Fに挑戦しようと思っているんですが、PIC18FはC言語で書いた ほうがいいらしいですね。無料でMPLAB C18というC言語のコンパイラが使えるらしいですし。 C言語は勉強したことがないので、とりあえずC言語を勉強しなければならないんですが、 C言語っていろいろ種類があるんですね。C,C++,C#、あとvisual basic系のCとか。 なんだかさっぱりわかりません。 MPLAB C18のC言語にもっとも近いのはどれでしょうか。おしえてください。

  • C#の特徴、利点など

    こんばんは!!僕は今C#でデーターベースプログラミングをしています(初心者です)。 卒業研究でなんとなくC#を選んでので、「なぜC#を選んだの??」って聞かれると.....です。 そこで、  1.C#の特徴  2.他の言語と比べたときの利点    (VB6.0,VB.net,C++.netとの比較) を教えてください。 お願いします!!!

  • C言語

    今、C言語でプログラミングをしています。VisualC#かVisualC++をはじめようと思っています。どちらの方が移行しやすいかを、誰か教えてください。

  • C言語を習う場合は

    C言語を習う場合は Microsoft VisualC++かMicrosoft VisualC#をインストールするのですか? これ以外のソフトでもできるのでしょうか? ということは もしこの二つでしかできないなら C言語というのはマイクロソフトが開発したのでしょうか?

  • C言語の学習について

    今からC言語を覚えようと思っているのですが、 C→C++→C#と習得していかなくてはならないのでしょうか? お勧めの開発環境と書籍なども教えていただけないでしょうか。