• ベストアンサー

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

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

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

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

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#は無関係なのでやる意味はありません。

newwave2000xl
質問者

お礼

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

その他の回答 (4)

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

> 今度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#に詳しい方フォローして下さい…)

newwave2000xl
質問者

お礼

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

回答No.1

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

newwave2000xl
質問者

お礼

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

関連するQ&A

  • C言語の種類

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

  • C,C++,VB,Java 各言語の特徴って何ですか?

    C,C++,VB,Java これらの各言語の特徴や開発にあたって注意しないといけない点などを教えてください。 ■背景 現行のシステムには様々な開発言語が用いられていますが、時々なぜこのシステムを開発するのにこの言語を使ったんだろう?と思うことってありませんか? 私は試行錯誤すればどの言語でも大抵のことはできると思っているせいか、いまいち言語の特徴が明確にできません。 上記の言語を比較してそれぞれどのようなことが言語の特徴となるのでしょうか? よろしくお願いいたします。

  • C言語とJAVA言語について

    一通りC言語を学習したのちで、最近JAVA言語をかじり始めたのですが、C言語とJAVA言語の違いが今一つ分かりません。違いをできるだけ多く、JAVA言語初心者である私に分かるレベルで教えてもらえないでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 初めて学ぶプログラミング言語とその参考書について

    こんにちは。 初めて学ぶプログラミング言語とその参考書について質問させていただきます。 現在、中学3年で私立の通信制高校に入学しようとしています。 高校在学中に、趣味でプログラミング言語を覚えたく、参考書もたくさんあり 何が何だか全くわからず、手がつけられない状態です。 C,C#,C++,VB,Javaなどの種類はよく聞きますが、調べてもどれがどのようなメリット・デメリットなどがあるのかがわかりません。 ただ、HP関連も趣味でやっているのでPerlなどに応用が効くような言語がいいかな?とも思います 他にも、将来PICを使ってみたいと思うことがあるかもしれないので対応した言語がいいかとも思います。 それぞれの特徴とおすすめの参考書をお教えください。 よろしくお願い致します。

  • 各言語の特徴

    いろんな言語の特徴が知りたいです。 C:処理速度がはやい VB:開発効率がいい VC++:ネットワークに強い JAVA:ネットワークに強い? Delphi: COBOL: 他たくさん知りたいですσ(^^) 教えてください、お願いします(^^)

  • C言語とJava言語について

    C言語とJava言語で作成されたソフトウェアの違いについて教えてください。

  • HP作成にあたって…Java、C言語どちらが実用性がある?

    HPを作る為に、JavaかC言語を活用したいと思っております。 どちらを活用したらよろしいでしょうか、理由と参考になる本もご紹介願います。また、就職にも活用できるという意味でもご回答頂けると幸いです。 HP制作経験はDreamWeaverを使ってならございます。 (HP作成のプログラム言語というとJavaかC言語しか思いつかないのですがもし、他の言語がありましたら教えてください。) 自分のコンピュータの知識は他の人曰く、多少詳しいらしいと言われております。(自身はそう思っておりません…)

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

     プログラム言語の特徴を教えてください。 汎用的なソフトが作れる事、またネットワークやデーターベースが(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#を選んだの??」って聞かれると.....です。 そこで、  1.C#の特徴  2.他の言語と比べたときの利点    (VB6.0,VB.net,C++.netとの比較) を教えてください。 お願いします!!!

  • 言語の特徴

    VBとASPはかじった程度ですが、どういうような言語かは知っているのですが VC C# C++ VC.NET VB.NET などの違いがよくわかりません。 また、Cとベーシックとの種類は上記だけでしょうか?

専門家に質問してみよう