初めまして。せいじと申します。よろしくお願いします。
プログラミング経験なしです。今30歳です。
遅すぎますが、これからC言語かC++言語をマスターしたいと思っています。
Windows 98 + Borland C++ Compiler 5.5
で勉強しようと思ってます。

Cの拡張されたものがC++だからC++を覚えようと思って、C++の本を買いました。
・新C++言語入門 ビギナー編 SOFTBANK Publishing 林 晴比古 著
・詳説C++             SOFTBANK Publishing 大城 正典 著
2冊ともまだ最初の方を読んで実践しただけです。

クラス、オブジェクト指向プログラミング等々が何なのか分かっていないのに、
C++をする意味があるのか、まずはCで十分ではないのか?
と思うようになってきました。

実際どうしたら良いのでしょう。
何も知らないならC++からでも良いのでしょうか。
違いが分からないならCで十分なのでしょうか。
みなさんの意見を聞かせてください。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (10件)

seiji-h さん。

こんにちわ。
プログラミングを今後主に何の目的で使いますか?

(1)仕事でC++が必要。
 頑張っておぼえましょう。

(2)文書データの加工など。。。
 今すぐPerl言語に切り替えましょう。

(3)趣味でWindowsアプリなどの作成を目指して。。
 そのままコツコツC++を続けていってください。

(4)歯ごたえのあるプログラミング言語を。。。
 そのままコツコツC++を続けていってください。

>実際どうしたら良いのでしょう。
>何も知らないならC++からでも良いのでしょうか。
どのようなことに興味をおぼえるかで、Cから始めるべきか、C++から始めるべきか
向き不向きがあります。

★簡潔な文法をもとに、ガリガリと自分の思うままに、プログラミングしたい。
とにかく自分で動くものを作りたいということなら、Cから始めるのが向いていると思われます。
★プログラミングすることよりも、プログラミング言語「自体」に興味があって、
一種の研究の対象と考えている場合は、C++の方が、おもしろおかしく学べると思います。
    • good
    • 1
この回答へのお礼

プログラミングは趣味でやりたいと思いました。
1~4の中から選ぶとすると、メインは2のような感じです。
フリーのCGIでデータベース(CGI DE アミ~ゴ!!)をホームページに設置して
こういうのが自分で作れたらいいな、と思ったのがきっかけです。
テキストファイルのデータをPerlで処理しているCGIです。
これをテキスト+Perlではなく、本物のデータベース+CかC++で処理したいと
考えました。CやC++ならそれ以外にもその知識の使い道がいくらでもあるからです。
(Perlもあるとは思いますが)

>とにかく自分で動くものを作りたいということなら、Cから始めるのが向いていると思われます。
これに当てはまると思いますが、C++を勉強することにしました。

どうもありがとうございました。

お礼日時:2001/05/27 01:54

私もC++からの方がいいと思います。

C++はオブジェクト指向言語ですから、Cとは全く異なります。私自身は、

1)Assembler
2)Fortran(大学では、1)より先に少しかじった)
3)Pascal(ごく短期間)
4)C
5)C++

という順序で憶えましたが、4)までは、殆ど何の苦労もなくマスターできました。Cではポインタに多少てこずったくらいです。これとて、Assemblerと対応付けるとあまり問題なかったです。

しかし、C++は1)~4)とは全く違うのです。C++はCをベースにしているとは言え、似て非なるもの。恥ずかしい話だが、頭が「手続き型言語」に慣れきっていて、「オブジェクト指向」になれないのです。

ですから、歳取ってからC++に慣れるのは大変だから、頭の柔らかい内にC++に慣れた方がいいというのが、いまだにC++にてこずっている私の意見です。
    • good
    • 0
この回答へのお礼

かなりの言語を修得されてますね。他のみなさんもそうなんでしょうか!

>ですから、歳取ってからC++に慣れるのは大変だから、頭の柔らかい内にC++に慣れた方がいいというのが、いまだにC++にてこずっている私の意見です。

頭の柔らかい内に... すでに固くなっています...
もうプログラマとして始めるには遅いと思っていますが、
できる限りがんばりたいと思います。

ありがとうございました。

お礼日時:2001/05/27 02:39

何も無いところからはじめるのであれば、C++ で良いでしょう。



よく「 C の知識も必要だから」と言われますが、C++ だけ知っておけば
良いのであれば、どの部分が C++ だ、などと知らなくても良く、全部、
C++ だと思って憶えちゃいましょう。つまり、

> 何も知らないならC++からでも良いのでしょうか

「何も知らない *から* C++から *の方が* 良い」です。


あと、いわゆる「オブジェクト指向」ですが、なるべく、変な癖が
つかないうちにやっておいた方がお得です。

また、Windows ベースのプログラムを組み出すと、Cだけでも組めないこと
は無いのですが、楽に組むためには MFC などの C++ ベースのライブラリを
使う方が格段に楽です。

そういう意味で、C *だけ* を憶えれば十分、という局面は、どんどん
少なくなってきています。個人的には、「 C だけを…」と言うセリフ
自体が、古臭い考え方です。
    • good
    • 0
この回答へのお礼

>「何も知らない *から* C++から *の方が* 良い」です。

反対の意見の方もいますが、これを言っていただけると、安心できます。

>あと、いわゆる「オブジェクト指向」ですが、なるべく、変な癖が
>つかないうちにやっておいた方がお得です。

オブジェクト指向とは何か、まだ全然理解しきっていないですが、
みなさんの回答でその辺は感じました。

>そういう意味で、C *だけ* を憶えれば十分、という局面は、どんどん
>少なくなってきています。

もしCを覚えるとしてもC++は必須の知識になってきているのですね。

C++を覚えることにしたので、その中からCを学んでいこうと思います。

どうもありがとうございました。

お礼日時:2001/05/27 02:30

適応性で差が出るとは思うのですが、私が今どちらも知らなかったのだとしたら、いきなりC++から始めます。



CもC++も扱っていますが、急ぎでテストコードを書かなければならない様な時はクラス設計を検討する手間隙を考えると、ついつい手抜きをしてCに走ってしまっています。
慣れれば手間隙とも感じなくなるのでしょうが、CP/M時代からCにどっぷり浸かってしまってきたもので、どうしても過去の資産と自分の頭の中身がCになってしまうんですね...
それでも『ああ、やはりC++で書いておくべきだった』と後の祭りが多々。
    • good
    • 1
この回答へのお礼

両方知っていると得することもあれば、損することもあるんですね。

私はC++に決めました。
過去の資産がない分、C++修得には有利かもしれません。
開発もC++でCにならないように綺麗に作成したいと思います。

どうもありがとうございました。

お礼日時:2001/05/27 02:22

 オブジェクト指向プログラミングがはやりだしたMS-DOS時代に、Cを知っている人より、最初からC++を勉強したほうが早くマスターできると言われていました。



 Cを知っている人がC++をマスターするのに半年はかかると言われていました。会社で仕事に使用している人たちはもっと早く使えるようになるみたいです。

 あなたのように、これからプログラミングしようという人は、DOS上でするならともかく、Win上でするのであれば、Borland C++ Builderを購入されることをお勧めいたします。小生はProfessonal版(定価6万8千円)を購入しましたが、Delphi と JBuilderがオマケについてきました。Learning版は定価2万円です。
http://www.watch.impress.co.jp/pc/docs/article/2 …
http://www.borland.co.jp/qanda/cbuilder/

 Borland C++ Builderの参考書も沢山出版されています。最新版はVer.5ですが、参考書はまだ出版されていないようです。Ver.1の参考書も結構参考になります。サイト検索で探してください.

「入門 C++Builder4 美田幸夫著 広文社」の著者のMLがあり、結構初歩的な質問にも著者が回答しています。非常に丁寧です。下のURLがそうですが、2,3日前までは表示していましたが、25日11時現在は表示されません。
http://www.kaajapan.com/cbpbbs.html

参考URL:http://www.watch.impress.co.jp/pc/docs/article/2 …
    • good
    • 0
この回答へのお礼

C→C++は頭の切り替えが重要そうですね。
私は頭が固いので、C++からにします。

まずはテキスト通りに、DOS上で進んでいき、
最終は、Windowsのアプリケーションも作成したいと思っています。
その前にC++でCGI(データベース関連)を作成するのが夢です。

Windowsのアプリケーションを作成する時には、紹介していただいた
C++Builderの購入を考えていますが高いですね~。
Professional版を買うと思いますが、まだ先なので次期バージョンを
購入することになるかも。

どうもありがとうございました。

お礼日時:2001/05/27 02:15

私も可能ならばCから始めたほうがいくらか楽じゃないかと思います。


そして、C++に移行するときにお勧めの本がコレ
 「C++のからくり」ISBN 4-7973-0829-X

良くあるテキスト本では、あーしろこーしろと言う説明ばかりで、じゃなぜそうなの?ってフトした疑問にはなかなか答えてくれませんが、この本はその「なぜ?」の部分を説明してくれます。
私のC++バイブルです。この本でC++(というかクラス)に目覚めました。
サンプルプログラムも、最初はCオンリーで書かれていたものが章を重ねるごとにほぼ同じ機能でC++に移行していくためとてもわかりやすいです。

参考URL:http://books.softbank.co.jp/bm_detail.asp?sku=47 …
    • good
    • 0
この回答へのお礼

Cから覚えた方が楽そうだというのは分かったのですが、
私の頭が固いので、Cではこうだけど、C++ではこう。っていうのが
私には難しそうです。結局C++を勉強することに決めました。
C++からCも見えてくると思いますので、その時に、紹介していただいた
テキストを参考にしてみようと思います。

どうもありがとうございました。

お礼日時:2001/05/27 02:09

多くのひとは実際Cから入ったのでCからやったほうが良い、と


いうご意見になるようですね。
じゃあちょっと違った角度から。どうせ趣味でやるなら、
「C++っての、やってみたいな」
ならどんどんおやりになったらよろしいかと思います。

「オブジェクト指向はもっと上達してからやるものでしょ?」
などと考えていると、結局やらないで終わったりします。
C++なのに、実際はCでしかない(オブジェクト指向らしいプログラム
ではない)ものを書く人もたくさんいますし。
先にCでの書き方を知ってしまったので、かえってオブジェクト指向
の理解が難しくなってしまうようなことも。(Cならこう書けるのに
なんでわざわざ…などと思ってしまって)

だったらむしろ、最初からオブジェクト指向での考え方から
入っちゃったほうがいい場合もあるような気がするのです。

まあ、Cでもオブジェクト指向ライクに書くことは可能です。
(うまい書き方ができるひとは自然とそれに近い形になっている
ものです)
オブジェクト指向というのはプログラムの設計の仕方ですから。
C++やJavaはそれを言語としてやりやすくサポートしてくれている
だけで。

個人的には「Javaでいいのでは?」とも思いますが…。というか
プログラミングというもので遊ぶならlispなんかがいいんじゃ
ないかな、とか思ったりしますが…。

どちらにせよ、プログラミングのキモというものを掴んでしまえば、
あとは言語特有の書き方、考え方に馴れるということだけですので、
どんな言語もやればよろしいと思います。30から始めたからと
いって一生1言語しか理解できない、ときまったわけでは
ないですから。
    • good
    • 0
この回答へのお礼

>「オブジェクト指向はもっと上達してからやるものでしょ?」
>などと考えていると、結局やらないで終わったりします。

C++から始めても、この状況に陥りそうで恐いです。
まずは、購入した入門書(新装版プログラミング講義C++)を
最初から順に理解していこうと思っています。

今はC++だけマスターできればいいや、って考えですが、
ネットでいろいろ調べてみると、Javaはマスターした方が良さそうですね。
C++とJavaで趣味+仕事に役立てたいと思います。

ちなみに今の仕事はC++やJavaでの開発とは関係ないです。

どうもありがとうございました。

お礼日時:2001/05/27 02:04

私もプログラミングの経験はほとんどないのですがやはり今から始めるのなら


C++の方がお得だと思います。
一応Cの上位互換と言うことなのでCの特徴である(別にCの専売特許ではありませんが)
ポインタや構造体やメモリ管理についても一通り学べると思いますし、テキストの
書き方にもよりますが構造体の概念を学ぶとクラスの概念が理解しやすくなると思います。
(ベテランの方はC++は本当のオブジェクト指向言語じゃないとおっしゃるようですが
趣味としてプログラミングをやるのならそんなに思想的な部分にこだわる必要はないでしょう。)

テキストの選択は重要だと思います。C++のテキストの中にはCの知識を前提としている
物も少なからずあるようです。もちろんそういう本ではなく本当の初心者を対象にした本を
選ぶべきでしょう。私のお勧めは「C・C++入門」(松坂勝志他共著 森北出版)
です。1994年初版発行と少々古く、またC++のクラスについては最後の12章にしか
書かれていませんが、学生の教育で苦労している高専の先生方が書かれたものだけに
プログラマーの人が書いたものより読みやすいと思います。
    • good
    • 0
この回答へのお礼

開発経験がほとんどないそうですが、かなり私とのレベル差を感じます。

勉強しようと思ったきっかけは、趣味からです。
趣味が仕事にまで役立つようになればいいな、と甘い考えも持っています。

テキストは、紹介していただいたものが見つからなかったので、
同じく先生をしている方(柴田望洋氏)の入門書(新装版プログラミング講義C++)を購入しました。
これも分かりやすそうです。

どうもありがとうございました。

お礼日時:2001/05/27 01:45

こんにちは。

itohhといいます。

VBでもなくJavaでもなくC,C++を勉強されたいのですよね?

王道はCをマスターしてからC++だと思います。(異論はあるでしょうが...)
ただし、C++を勉強するということはCも勉強することでもあると思いますから
C++からでも良いかな?

Borland C++ Compiler 5.5 ってフリーの開発環境ですよね。
出来ないことはないのですが、Winodwを伴うプログラム(電卓とかエディタとか)を作成しようと思ったら大変だと思いますよ。
(頑張ってる人もいるのでしょうが...)
ある程度まで勉強が進んできたら製品版の購入をお勧めします。
    • good
    • 0
この回答へのお礼

VBでもなくJavaでもなくCかC++を勉強したいのです。

CをマスターしてからC++が良いことは分かってきましたが、
C++を勉強していきます。

とりあえず、フリーのコンパイラで入門書をこなしていきます。
フォームとかはまだ先のことだと考えています。
まず初歩を勉強し、将来的には製品を購入したいと思っています。

ありがとうございました。

お礼日時:2001/05/27 01:36

C++はCを「オプジェクト指向」用に拡張したものです。


よって、C++を知ると言うことはCの知識も必要になります。
Cは知らないけどC++はできるということにはなりません。

とっつきやすいのはCかも知れません。また、C++の解説本というのはCは知っているという事を前提としているのが多いですから、C++を知る前にCをサラッと勉強しておいて損はないと思います。
C++はC++が難しいというのではなく、「オプジェクト指向」を意識した設計というのが
ちょっと経験とコツがいるということです。
たとえれば、CやC++は英語の単語や文法を覚えるということです。それで、英語を書くことはできます。
オプジェクト指向という設計方法を知るのは「英語で小説を書く」という様なものです。
日本語でも英語でもそうですが、言葉を知っているだけでは「小説」は書けません。

世の中の潮流としてはオプジェクト指向が主流になってきているので、最終的にはC++を覚えた方がBetterであるとは思います。(勿論、オブジェクト指向を勉強するのなら、C++以外にもJavaやObjecttive-Cといった言語もありますが・・・・
    • good
    • 0
この回答へのお礼

オプジェクト指向とは何か理解していないのですが、
「英語で小説」の例えで、重要性は分かってきました。
まずは「オプジェクト指向」という言葉にとらわれずに
C++を勉強していこうと思います。

どうもありがとうございました。

お礼日時:2001/05/27 01:32

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qゲーム開発がしたい。学ぶべきはC++かC#か。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C言語のプログラムを書いていました。
PCとマイコンのシリアル通信のために、C#でwindowsアプリケーションも作りました。
C++もほんの一時期だけ使っていました。
卒業してから日が浅いので、これらの知識はまだある程度あります。
会社ではaspxとJavaScriptでWebページの外面、内部の動作をVBで行なっています。

触れたことのあるプログラミング言語を理解度順に並べたら多分こんな感じです。
VB≒C#>C>JavaScript>>>C++

C#とVBは似通った言語なので、VB中心の現在でもなんとなく理解できます。
現在最もメジャーらしいC++が最も経験が少なく、自信がないです。

軽く調べた感じでは、現在のゲーム開発はC++が多いが、
今後はC#やJavaも増えるかもという感じでどちらでゲーム開発を本格的に学ぼうか迷っています。

最もメジャーなC++を改めて学ぶべきか、
それともある程度使えるC#での開発方法を学ぶか、
あるいはその他の言語か、助言をお願いします。

また、開発の参考文献なども教えていただけると幸いです。
よろしくお願いします。

現在、小さな事務系ソフトウェア開発会社でプログラミングをやっている者です。

思う所あって、ゲーム系の会社への転職を考えています。
応募にあたって作品の提出が必要なことは存じていますが、
どの言語を勉強し、開発すべきかで迷っています。

開発したいゲームとしては、STGかRPGで考えています。
2Dか3Dかは特にこだわりがありません。

過去に行ったプログラミングは、ゲームの関係の薄いものばかりで、
「ゲーム開発」について本格的に学んだことはありません。
学生の頃はロボットを制御するために、C...続きを読む

Aベストアンサー

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今時は家庭用ゲーム機は3Dじゃないと厳しいと思います。
あと応募作品でSTGだとすごく多いので、それだけで評価が下がります。
逆にRPGは、規模が大きくなるためプログラミングスキルが直に反映されるので応募課題としては悪くないですが市販レベルの操作性に合わせて作ること事態が大変です。
WEB系をやっていたのならオンラインゲームを作るスキルも期待されるでしょう。

とりあえず、どのぐらいのものが作れるかリアルタイム性のあるものを作るということがどういうことなのか理解するためにDXライブラリをご紹介しておきます。
これでラクラクとゲームを作れるようなら本格的にC++とDirectXやC#とXNAで応募作品を作れば良いのでは無いでしょうか?

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/

同サイトのこっちの掲示板には業界人の回答者も出没します。
「C言語何でも質問掲示板 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewforum.php?f=3

今後の動向不明なソーシャルならPHPとかJavaScriptとかWEB系です。
家庭用ゲームのメインの開発は今後もしばらくはC++が続くと思いますが、C#もツール開発用としては導入されていますし一部のゲームはC#で開発されています。
家庭用ゲーム機なら両方共出来ないとダメじゃないかと思いますね(片一方はある程度出来る程度で良いと思いますが)。

>開発したいゲームとしては、STGかRPGで考えています。
>2Dか3Dかは特にこだわりがありません。

こちらが拘るんじゃなくて向こうの会社が拘る問題ですが、今...続きを読む

QC++とVC++の違いについて

この質問をご覧頂きありがとうございます。

みなさんに2つ、お聞きしたいことがあり、質問させていただきます。
1.C++とVC++とでは、どのくらいの違い(どういう違い、特徴)があるのでしょうか?

2.また、これからC++/VC++でプログラミングを始めようとした場合、
C++からVC++へと段階を踏んで勉強した方がよいのでしょうか?

一応、私のプログラミングの履歴としては、
言語としてVisual Basicは多少勉強はしておりました。
また、オブジェクト指向の基礎程度(多相、継承、カプセル化)は理解しています。

抽象的な質問で大変恐縮なのですが、
みなさんの経験論や、ご参考にした本、HP等がありましたら、
ご教授いただければと思います。

Aベストアンサー

こんにちは、honiyonです。
 VC++ は、Microsoftの発売している C++開発環境です。 純正C++に加え、独自に機能(という言い方でいいのかな?)を追加しており、更に開発しやすいソフト(環境)を添付してあります。

 VC++に限らず、大体はそうです。 ProC++も、Borland C++も皆そうです。
 今までお使いになっていた VBも、BASICコンパイラ+開発環境です。 
 こちらの場合、BASICに機能を追加・・・というより仕様そのものを大幅いじってますね(笑)

 VC++をただ単純に C++として使用するなら良いですが、VC++とMFCを使用してウインドウアプリケーションを作りたいという事であれば、死に物狂いな勉強が必要が必要かもしれません。Windowアプリケーションの処理プロセスを理解していないと、とっても難解に感じると思います。
 VC++でなければいや!という理由がなく、Visual Basicからスムーズに移行でき、かつVisual Basicより奥の深い事をしたい、というならば C++ Builder をお勧めします。 こちらで腕を慣らし、徐々にWindowアプリケーションの処理プロセス(WinMainから始まるプログラムの組み方の事です)を学ぶと良いかな、と思います。 その上で VC++&MFCな環境に移行すると、敷居はぐっと低くなります。
 私は一度VC++&MFCに挫折しましたが、こちらの方法で何とか理解する事が出来ました(^^;

 参考になれば幸いです(..
 

こんにちは、honiyonです。
 VC++ は、Microsoftの発売している C++開発環境です。 純正C++に加え、独自に機能(という言い方でいいのかな?)を追加しており、更に開発しやすいソフト(環境)を添付してあります。

 VC++に限らず、大体はそうです。 ProC++も、Borland C++も皆そうです。
 今までお使いになっていた VBも、BASICコンパイラ+開発環境です。 
 こちらの場合、BASICに機能を追加・・・というより仕様そのものを大幅いじってますね(笑)

 VC++をただ単純に C++として使用するなら良いで...続きを読む

QC言語、C+、C++、C#の違い

C言語、C+、C++、C#の違いがよくわかりません。
自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。
わかりやすく教えていただけたら幸いです。
初心者がプログラミング言語を始めるならどの言語がいいですか?
幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。
私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

Aベストアンサー

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては?

プログラミング言語というのは「初心者」にはどれも簡単ではありません。
実際にコンパイル出来る環境があれば習得は早いとは思います。

因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。


Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動的ページの生成(CGI)に使用されたりしています。
大量のテキストデータを処理するならPerlは超高速。でも型定義とかが曖昧だし正規表現と鋳物を覚えないといけないのでこれまた大変。オライリーから出ている専門書でも正規表現はそれだけで1冊になってますからね。

「初心者にわかりやすい」と「活用」は相反することがあります。
そんなところに拘っていると本質を見失いますよ?
まずは気になる言語の書籍を買って読みあさりましょう。自分にとってわかりやすい言語かどうかはそれからです。

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては?

プログラミング言語というのは「初心者」にはどれも簡単ではありません。
実際にコンパイル出来る環境があれば習得は早いとは思います。

因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。


Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動...続きを読む

Qmain関数終了時のreturnの意味は?

質問の題名通り、main関数終了時のreturnの意味が知りたいです。いつもは参考書に書いてある通り、return 0とやっていたのですが、参考書のサンプルプログラムでreturn 1というのがでてきた為、少し混乱しました。
参考書に説明が載っていないのでmain関数内でのreturnの意味をご教授願いたいです。よろしくお願いいたします。

Aベストアンサー

# 4です。

まず、0を返そうが、1を返そうが、そのプログラム自体の内部的な動作は通常変わりません。
戻り値で動作が変わる可能性があるのは「そのプログラムを呼び出したプログラム側」です。

例えば、make から呼び出された場合にそのプログラムが0以外が返したら、makeは「そのプログラムは失敗した」と考えて、処理を中断したりします。(続けて欲しいなら「成功」を返す、こういうために使います)
コマンドラインからあなたが手で入力したのなら、何も起きないかもしれません。

1を伝えられたOSが何をするかは環境(OS)によります。
gccは、Windows版もLinux版も各UNIX版もあるようなコンパイラですから、その版によって違う可能性があります。
ちなみに、手元の Minimalist GNU for Windows では 1 は EXIT_FAILURE でした=つまり前述のような失敗。
別のOS上のgccでは別の値にポートされている可能性も否定はできません。

C言語が保証しているのは、EXIT_SUCCESSを返したとき、その環境では成功と判断してくれるだろう値を返すことと、EXIT_FAILUREのときは失敗と判断してくれるだろう値を返すことだけです。
0は通常EXIT_SUCCESSですが、1はEXIT_FAILURE とは限りません(現実的には 0 と 1 が大半だと思いますが、EXIT_FAILUREが-1とかでも違反ではないです)。
但し、実際に判断できるかはOSにもよりますし、呼び出したプロセスがどう判断するかにもよります。

なお、Windows や Linux, その他私の知っている UNIX では、1を返されたからといって必ず何かが行われるということはありません。
前述のように、別のプログラム等から呼び出された場合に、そのプログラムが失敗と判断して何か処理を行う可能性はありますが、これらはあくまで呼び出し元のプログラムによります。
ITRON等の組込みOSでは、main が値を返す事は通常ありません。

憶測ですが、参考書のサンプルで return 1;となっているのは、例えば argv が求めているものと違うとか、fopen に失敗したとか、そういうケースではありませんか。
そういう異常処理が発生した場合に、もしも呼び出したプログラムがいたらそれを伝えられるように、EXIT_SUCCESS (0)以外の値を返すのは慣習です。
具体的にどんな値を返すかは、プログラムの設計次第になってしまいますが、1や-1を返したり、失敗原因ごとに決めた値を返したりします。
汎用性を重視するならEXIT_FAILURE等もありますが、知名度もやや低いですし、0以外なら何でもいいという認識の人も多いように思いますので、サンプルは単に1を返しているのではないかと。

# 4です。

まず、0を返そうが、1を返そうが、そのプログラム自体の内部的な動作は通常変わりません。
戻り値で動作が変わる可能性があるのは「そのプログラムを呼び出したプログラム側」です。

例えば、make から呼び出された場合にそのプログラムが0以外が返したら、makeは「そのプログラムは失敗した」と考えて、処理を中断したりします。(続けて欲しいなら「成功」を返す、こういうために使います)
コマンドラインからあなたが手で入力したのなら、何も起きないかもしれません。

1を伝えられたOSが...続きを読む

Qcでなぜguiアプリが作成出来るのか。

cでなぜguiアプリが作成出来るのか。

現在cについて学習中です。
テキストエディタで書きターミナルで実行しています。
cではアプリが作れるようになるといいますが
現在のままではcuiのソフトしかできる気がしません。

一般的に言われるアプリケーションというものを
作成するにはまた別の手段が必要なのでしょうか。

Aベストアンサー

C言語の標準関数では出来ませんね。
Windowsであれば、WindowsAPIと言う関数群を使ってウィンドウを作成したり、ウィンドウをコントールする事が出来ます。
昔のMS-DOS時代であれば、直接VRAM(画像メモリ)をポインタで操作出来ましたので、VRAMに直接書いていました。

WindowsAPIについて紹介しておきます。
「Win32 API入門」Win32は、WindowsAPIの32bit版と言う意味です。
http://wisdom.sakura.ne.jp/system/winapi/index.html
C言語の知識としては、ポインタから構造体まで使いますので初心者にはムチャクチャ難しいです。CUIが自在に組める人でも挫折者がいますからね。

そうそう、CUIでもこのぐらいは出来るよと言う例も書いときますね。
http://hp.vector.co.jp/authors/VA016117/cprog/index.html
参考にしてください。

Q組み込み系と制御系の違いは?

SE/PGの求人で、組み込み系、制御系を見ますが、
組み込みとは、家電製品などに組み込み、使用者が家電製品を使うときに操作したとおりに動くようにプログラムをつくるエンジニアのことでしょうか?

制御系はどういたことなんでしょうか?
制御とついているので制御するのだと思うのですが、使われる箇所としてはどういった所に使われるのでしょうか?

さっきの組み込み系でも、家電製品に”組み込ん”でも、”制御”もされているのではないでしょうか?
例えば、電子ジャーに”組み込ん”でも、温度調節なども”制御”しているのではないでしょうか?

組み込みと制御は同じような事なのでしょうか?

Aベストアンサー

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高速化などの課題が多い)

で、SE/PG求人ということなので、「ソフトウェア開発」に絞られます。
一般には、制御系システムの方が範囲が広く、以下のように使われるケースがあります。
「...制御系のシステム(計測・制御用ソフト、組み込み用ソフト、FA用ソフト)の開発経験者を求む....」

一般的には、
組み込み系システムとは、
 昨今の家電・電子機器・自動車(etc.)には、機器を制御するためのマイコン用ソフト・ハードが組み込まれて内蔵されている。その機器内部のコンピュータシステムを指す。組み込み系ソフトとは、機器内部のコンピュータシステムを稼動させるソフトウェアで、組み込み系システム用に開発されたソフトウェアのこと。組み込み系に対しては、PC系・UNIX系と言ったりする。機器の外部にコンピュータを接続する形式が「非組み込み系」と考えてよい。システムの構築の際、形態・方法を指す言葉。したがって、電子ジャーは、組み込み系システムであるとは言えます。

一方、制御系システムとは、広義には、機器を「制御する」システムを対象とする。狭義には、特に制御が主機能になっているものを指す。ここでの「制御系」の概念は、「組み込み系」であっても「非組み込み系」であっても構わない。すなわち、システム構築の目的や用途(機能)を強く意識した言葉。したがって、電子ジャー(炊飯)などの特定の狭い用途で主機能ではない場合には、使いません。自動車のカーナビ(位置特定)なども。敢えて「制御」を使うならば、電子ジャーの温度制御ソフトのように使われる。


制御系の実例的には
主な制御系         具体的システム例       ソフトの対象例
監視・制御系        中央監視盤、照明制御システム 制御端末用ソフト
FA系           製造ライン監視制御システム  PLC用ソフト
プロセス制御系       製鉄プラントシステム
通信・制御系        移動体通信制御システム    携帯電話、基地局
計測・制御系        排ガス濃度監視装置      濃度計測、ロギング
組み込み・制御系      DVDプレーヤシステム     モーター回転数制御
「DVDプレーヤ」では、単に「制御系」とは普通言わない。
「組み込み・制御系」もしくは単に「組み込み系」。

納得がいかないなら、「制御系」などで検索し、
ターゲットの実例を調べてください。

参考にされば、幸いです。

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高...続きを読む

QC言語を独学でマスターした人。。

こんにちは。
僕は独学でC言語をマスターしようと勉強してますが、独学では限界があって殆ど解ってないです。
それで、僕と同じように自宅で独学でC言語を勉強してる人もしくは、マスターした人はいますか?。
それ以外の人でも構わないので、もし良ければアドバイスお願いします。

Aベストアンサー

プログラマというのは特別高度な技術が必要な職業ではないと思います。私は結局はゲームプログラマではなく一般のSEですが、求められるのは高度なプログラム技術ではなく、他の人に読みやすくバグのないコードを書くことです。
fantom77さんがCを学ぶ理由をお尋ねしましたが、目的によってあなたに必要な技術は違ってきます。私も、初心者向けの書籍を買って見よう見まねで本の通りにプログラム書いてはコンパイル、を繰り返す前は、プログラムが外国語に見えました。でも、興味があるなら何よりもまず、簡単なプログラムから初めて、自分で書いたものが動くことを体感して、「動いた!」という喜びを重ねてください。プログラムに限らず、人間、興味のあることには難しくても取り組むでしょう?
繰り返しますが、C言語も、プログラマも、決して特別な存在ではありません。もっと気楽にとらえて、楽しんで取り組むのがコツですよ。

QC、C++、C#の関係について

現在C#で簡単な開発しています。

今度就く業務ではC++が必要だから、勉強しておくようにと言われました。
C#を使っていながら、恥ずかしい質問なのですが・・・

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?
  正式名称が「Microsoft Visual C++ .Net」なので、同じような気がするのですが。
  私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

 ・C言語とC++との違いは何なのでしょうか?
  両者の関係が分かりません。
  C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?
  C#を習得するときは、C言語を勉強しませんでした。
  C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

C#とC++がどれほど違うのかが不安です。
質問がたくさんになってしまいましたが、よろしくお願いいたします。

Aベストアンサー

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NETというと、恐らくはManaged C++(MS独自拡張)か、
C++/CLI(これはECMAで独立した言語として標準化)をさすと思われます。
# Managed C++とC++/CLIも微妙に違う言語です。

一報、単にVC++と言う場合、標準C++(+MFC)の可能性が高いです。


> 私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

これは、.NET framework上のManaged C++と標準C++の両方に対応した製品です。

 ・C言語とC++との違いは何なのでしょうか?

C言語は、ISO/IEC9899で標準化された言語です。
C++は、C言語をベースに開発された別の言語です(ISO/IEC14882)。
そして、.NET framework用のC++/CLI (ECMA-372)も別の言語です。

CとC++の関係を例えるなら、ラテン語と英語とかみたいなものでしょうか。
(ベースでもあり、参考にはなるが、似て非なるもの)

> C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?

知っているとお得です。知らないと将来「はまる」可能性もあります。
ですが、最初に勉強するべきかといわれると、議論が分かれるところだと思います。

> C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

「C言語で開発」とも言います。
(PCアプリだと「C言語+Win32」ということが少ないだけで、組込業界等に行くと普通にあります。別言語ですし、C言語のシェアも高いので)

> C#とC++がどれほど違うのかが不安です。

根本のOOPとかは共通ですが、C++の方が格段に複雑で難易度が高いです。
C++⇒C#は比較的容易ですが、逆は結構面倒だと思います。

C#がオートマ車の運転なら、C++はF1カーのようなもの。
クラッチの切り方から注意しないとエンストしたり、事故ります。
その代わり極めれば性能が出ます。(反面、極めるのは困難です)

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NET...続きを読む

Q戻り値の意味がわかりません…

戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

Aベストアンサー

バカくさいかもしれませんが簡単な例えをだしてみます。
2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。

Q新幹線指定席の時間の前に自由席はOK?

タイトルどおりです。たとえば指定席13時に予約していて、7時の自由席に座るのはOKなのでしょうか?
ルール上OKなのかどうか?というのがひとつと、到着後、乗車時間前だから改札通るときに通れない、なんてことないでしょうか?

Aベストアンサー

問題無いかと思います。
改札を通る際に、どこの席に座っていたかなど分かるはずないし。乗車券と特急券さえあれば出れるはずですよ。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング