こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C言語について教えてください

skypとかlinuxはC言語で作られてるって聴くんですけど
CってDOS画面上でしか操作できないのにGUIとかに対応させる事ができるんですか?
Cと他の言語を組み合わせてGUIを完成させているんですか?
どうか、教えてくださいまた参考になるサイトがあるなら教えてください
お願いします。

投稿日時 - 2010-03-29 23:19:00

QNo.5788901

暇なときに回答ください

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

Cという言語は、(厳密に言語それ自体の仕様としては)入出力に関連する文を持っていません。
たとえば、printf() というものは、Cの文(や式)ではなくて、「関数」です。

それでも、入出力が全く想定できないのでは、いろいろと不都合ですから、「標準入出力」というものを想定しています。
これが、概ね、キーボード(入力)とか、コンソール(出力)に機能的には一致します。

こういうわけで、一般的なCの解説をしようと思うと、標準入出力の範囲でしか解説ができなくなり、それが、たまたま、DOS の入出力にほぼ沿っているということです。

さて、入出力の機能を持っていないということは、たとえば、printf() という関数を作って(普通はメーカーが準備してくれる)出力をしなければならないということですが、言い換えれば、ある環境で、入出力をしたければ、その環境に合致した(たとえば) printf() を作ればいいというわけです。

このように、その環境(たとえば、Windows)にあった、入出力関数だったり、グラフィック関数だったりを準備すれば、Windows で動くようなプログラムが可能だということです。

そして、この、Windows 環境で動く入出力プログラムというのが、レベルにより、Wiondows API と呼ばれる関数群だったり、それを、使いやすくした(最終的には、Windows API を呼び出す)クラスライブラリだったり、最近だったら、.NET Frameworks だったりするわけです。

投稿日時 - 2010-03-30 09:04:44

ANo.3

C言語は、どうしてもアセンブリ言語が必要になるごく一部をのぞけば、ソフトウェアでできることなら何でもできます。
もっと便利に見えるプログラミング言語も、ふたを開ければ、その言語のコンパイラやインタープリタ自体がC言語で作られていたりします。

投稿日時 - 2010-03-30 01:29:46

ANo.2

>CってDOS画面上でしか操作できないのに

そんなことはありませんよ。
WindowsのAPIを呼ぶとか、GUIのライブラリを使うとかでGUIのプログラムは作成可能です。
もっと下位レベルのプログラムで、グラフィックデバイスのデバイスドライバを直接操作することでも作成可能です。その中間のDirectXというのもあります。

Linuxでもほぼ同様です。

>参考になるサイトがあるなら教えてください
Windowsだとこのサイトが有名です。
http://homepage2.nifty.com/c_lang/index_sdk.html

投稿日時 - 2010-03-30 00:01:56

ANo.1

>DOS画面上でしか操作できないのに
そもそも前提が間違っているので、結論が間違っていますとしか言えません。
貴殿の知っているCコンパイラが、DOS用のコンパイラだからと言って、すべてのCコンパイラがDOS用だと考えるのは間違いです。
※すべてのCコンパイラはUNIX用だと勘違いしている方が、まだ救いがあるように思えます(歴史的に)。

おそらく、CとC++も区別せずに混乱を招いている気もしますし、それよりも、VBなどのようなWindows専用言語と、C/C++のような汎用言語(というより広く使われている何でもできる言語)を同列に置いて比較しようとして混乱しているのだとは思いますが。

Windows上でGUIプログラムが作れるのもWindowsAPIを使っているからだとか、DOS用のCコンパイラでもwindows.hをincludeすればGUIで作れるとか、include stdio.hってまだ『おまじない』だと思っているレベルですか?とか、いろいろと書きたい事はありますがまだ理解には結びつかないかなと思うので割愛。

投稿日時 - 2010-03-29 23:58:33

あなたにオススメの質問