C言語の仕様について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヒロ

C言語の仕様について

#1

投稿記事 by ヒロ » 15年前

10年ぐらい前に学校でC言語を習っていました。
そして、就職を目指すべくC言語をまた新たに習いに行くつもりです。
学習はしたものの10年間何もプログラムを打っていなかったからです。
そして、今現在C言語を学ぼうとして学校に行っています。
そこで購入した本が「これならわかる C 入門の入門 坂下夕里」著 SE SHOEISHA
表紙の黄色のラインが特徴です。



この本を読んでいると。。。。

#include <stdio.h>

return 0;
は必ず書かなければいけないとありました。

この下記のプログラムですが、エラーは出ないのですが
実行するとすぐに消えてしまい、結局どういう出力になったのか
確認できませんでした。

#include <stdio.h>
main(){
int i,j,k;
for(i=1;i<=20;i++)
{
for(j=19;j>=i;j--)
printf(" ");
for(k=1;k<=i;k++)
printf("* ");
printf("\n");
return 0;
}
}

-----------------------------------

それに対して、
#include <stdio.h>

return 0;
をはずした場合、出力がしっかり確認できました。

main(){
int i,j,k;
for(i=1;i<=20;i++)
{
for(j=19;j>=i;j--)
printf(" ");
for(k=1;k<=i;k++)
printf("* ");
printf("\n");

}
}


これは著者がどういう思いでこのような事を言っているのでしょうか?
それともこの10年でコンパイラの性能が変わったのか、あるいは
仕様が変わったのかどうなのでしょうか?

CコンパイラはBorland C++Compiler 5.5無償
のコンパイラを使っています。

これから学校ではこの本を使って勉強する事になるのですが
皆さんはどのように思われますか?

ヒロ

MSNでも相談していることですが

#2

投稿記事 by ヒロ » 15年前

マルチポストをする時はリンクを張らなければならない規則でしたね。
という事で
http://questionbox.jp.msn.com/qa6104511.html

このMSNの相談箱に相談していることと重なるのですが
NetBeans IDE 6.9でC言語のコンパイラの設定を教えて頂きたいのです。

今ままでずっとJAVAの勉強をNetBeans IDE 6.9でしてきました。
そして新たにC言語を学習することになりました。
よく見るとNetBeans IDE 6.9でC言語が使えるという事が書かれていたので
コンパイラの設定をしていたのですがどうしてもうまくいきません。
今までNetBeans IDE 6.9を使ってきたのでどうしてもこのソフトでプログラムを打ってみたいのです。

Borland C++Compiler 5.5無償や
下記のアドレスの説明のコンパイラ【MinGW-5.1.6】や【Cygwin】
のコンパイラをダウンロードし設定しました。
http://netbeans.org/community/releases/ ... tions.html

もちろん、書かれてあるとおり、この2つのコンパイラは別々のフォルダに保存しました。
c:\の直下に保存しています。

しかし、何度やってみてもエラーが出てしまいます。
そのエラーとは。。。。。

ダイヤボックスのタイトルが【C/C++コンパイラが見つかりません】です。
内容は

システム上に適切なコンパイラが見つかりませんでした。
IDEが正しく動作するためには、一連の適切なコンパイラとその他の構築ツールが
必要です。

すでにシステムにコンパイラがあるが見つからない場合、次のいずれかを行います。
1)IDEを終了して、コンパイラをPATH環境変数に追加し、IDEを再起動します。
2)「ツール」>「オプション」>「構築ツール」ダイアログを開き、設定にコ
ンパイラを追加します。
システムにコンパイラがない場合、次を行います:
3)一連の適切なコンパイラをダウンロードしてインストールし、
IDEを再起動します。

構築環境のインストールおよび構成についての詳細は、http://netbeans.
org/community/releases/69/cpp-setup-instructions.html
を参照してください。

ちなみに1)は出来たと思います。

次に2)をやってみたのですが
「ベースディレクトリ内のコンパイラのみ使用可能です。」
というエラーが出ます。


どのように設定すればNetBeans IDE 6.9でC言語が使えるようになるのか教えてください。
本当に困っています。学校の授業に備えたいのです。


【相手が質問してくれた文面です】
環境設定の中にある、C/C++の項目を選択すると、
コンパイラやMakeコマンドをパス指定できる箇所がありますが、
そこには正しくパス指定されていますか?


【その答えを以下に書きました】

まず、使用しているOSがVISTAなので、NetBeans IDE 6.9のショーカットから特権レベルで
「管理者としてプログラムを実行する」にチェックを要れ実行しました。
【してもしなくても結果は同じでした】 何も設定されていませんでした。

makeコマンドに「C:\msys\1.0\bin\make.exe」と指定しました。
そして【了解】をクリックして一旦閉じました。しかし、再度開いてみると、初期の状態に戻っていて
全てが空白になっていました。
Cコンパイラ、C++コンパイラ、Fortranコンパイラ、makeコマンド、デバッカコマンド、
qmakeコマンド、cmakeコマンド
これらの項目に何を指定していいのか全くわかりません。
どういう手順で、NetBeans IDE 6.9でC言語を使える状態に出来るのでしょうか?
本当に困っているのでよろしくお願いいたしますペコリ(o*。_。)oペコッ

パコネコ

Re:C言語の仕様について

#3

投稿記事 by パコネコ » 15年前

return 0の場所が・・・

#include <stdio.h>
main(){
int i,j,k;
for(i=1;i<=20;i++)
{
for(j=19;j>=i;j--)
printf(" ");
for(k=1;k<=i;k++)
printf("* ");
printf("\n");
//return 0;
}
return 0;
}
これならどうですか?
元のプログラムだとループの途中でプログラムが終了してしまいます。
===============
#include <stdio.h>
これはstdio.hで定義しているものを使うためではないでしょうか?
NULLとか…
ヘッダファイルとかいうものだと思うのですが…[.h]って書いてますし…
return 0については、
関数の戻り値について勉強していれば「こんなものなのかな?」ぐらいには多分わかると思います。
私も少し不安ですが…
画像

yoko

Re:C言語の仕様について

#4

投稿記事 by yoko » 15年前

#include <stdio.h>
を書かなければ通常は文字は表示できないのですが・・・

return 0;に関して、
return 0;
の位置が間違っているために正しく結果が出ないのでは?

return 0;
}

}
return 0;
に変更すれば正しく動きます。

本が間違っているのではなく、あなたの写し間違いでは?
写し間違いであればその本で勉強しても差し支えないと思います。
写し間違えでなくとも、それくらいの間違いであれば学校の先生が
間違いに気づくと思いますので、問題ないと思います。

たかぎ

Re:C言語の仕様について

#5

投稿記事 by たかぎ » 15年前

> #include <stdio.h>
> を書かなければ通常は文字は表示できないのですが・・・

そんなことはありません。

int main(void)
{
puts("hello");
}

で、(警告が出たとしても)文字列を出力できるはずです。

必ず、<stdio.h>をインクルードしないといけないのは、FILE型やfpos_t型を使う場合、stdoutやSEEK_SETなどのマクロを使う場合だけです。
printfなど、可変個の実引数を受け取る関数は、関数原型が必須ですので、関数宣言無しで呼び出すことはできませんが、

int printf(const char*, ...);

と、自分で宣言すればよいので、必ずしも<stdio.h>をインクルードする必要はありません。

ヒロ

Re:C言語の仕様について

#6

投稿記事 by ヒロ » 15年前

いろいろアドバイスを頂いて本当にありがとうございます。(*^-^*)
知らない事実だったので、少し、戸惑っていますが。。。
それで、自分でも、いろいろ試してみたのですが、一つ判ったことがあります。

Borland C++Compiler 5.5無償を使うと
#incledeやreturn 0;
を書かなければコンパイル時に失敗しますが、
開発ソフトによっては書かなくてもよいのかな?と思いました。

http://9cguide.appspot.com/p_9cide.html
上記のHPのソフトでは書かなくてもそのままコンパイルと実行ができました。


この項目とは違いますが、上記の
Date: 2010/08/17(火) 21:43 No:59232
Title: MSNでも相談していることですが  の事も教えて頂けると大変嬉しいです。 
NetBeans IDE 6.9でC言語のコンパイラの設定を教えて頂きたいと思っております。

ご存知の方がいればよろしくお願いいたしますペコリ(o_ _)o))

たかぎ

Re:C言語の仕様について

#7

投稿記事 by たかぎ » 15年前

> Borland C++Compiler 5.5無償を使うと
> #incledeやreturn 0;
> を書かなければコンパイル時に失敗しますが、

本当ですか?
警告ではないのですか?

下記も参考にしてください。
http://www.kijineko.co.jp/node/736

閉鎖

“C言語何でも質問掲示板” へ戻る