よくある質問

これまでに頂いたご質問の中から幾つか、回答をまとめて掲載しておきます。

C言語で書いたプログラムがコンパイルできません。

質問:C言語編の最初に登場する次のプログラムが、コンパイルに失敗してしまいます。

main(void)
{
	return 0;
}

回答:VisualC++ の場合、ソースファイルの拡張子を「.c」にしておかないと、C言語のプログラムであると認識しません。 VisualC++ でファイルを新規作成した場合、恐らく「.cpp」になっており、 その場合、このプログラムを C++ で書かれたものであると認識します。
C++ としてコンパイルすると、次のようなエラーメッセージを出すはずです。

error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

「XXX」というプログラムを書いたのですがエラーが出ます。

質問:「XXX ということがしたくてプログラムを書いたのですが、エラーが出てしまいます。どうしたらいいのでしょうか?」

回答:「XXX」の部分は割と具体的なのですが、後半が曖昧な質問が多くて、いつも回答に困ります。「エラー」という言葉が非常に曖昧なのです。
例えば、VisualC++ で「ビルド」を行ってエラーが出たという場合もあれば、 実行してみると突然、強制終了が掛かったような動作になってしまうという場合もあります。 単に、自分が想定した結果にならなかったことを指して「エラー」という人までいるようです。
とにかく具体的に、「どんなことがしたくて」「どういうことをしたら」「どこでどうなったのか」を明確に書いてみて下さい。 多少、文章量が多くなってしまっても、曖昧でさっぱり分からない質問よりはずっとマシです。

標準関数を使いたいが、コードにどう組み込んでいいのか分からない。

質問:ある目的を達せられる(達せられそうな)標準関数の存在は知っていますが、使おうとするとコンパイルできません。 多分、#include が必要なのですが、何をインクルードすればいいのか分かりません。

回答:どうやら調べる手段というものが分からないということのようです。 関数名まで分かっているのなら、Google で検索すればほぼ答えは出ると思います。 例えば、C言語の qsort関数のことを調べるなら「qsort」で検索するだけです。
ただ、世の中にはC言語以外にも多くのプログラミング言語があり、名前が被っていると余計な情報もたくさん出てくるかも知れません。 その場合は、「qsort C言語」のように検索して絞り込むなどすればいいでしょう。

ただし(当サイトも他人事ではありませんが)、個人サイトの記事というのは大抵、信頼性が低いと言わざるを得ません。 ちゃんと正確な情報を知りたければ、お使いの開発環境を提供している組織の公式ドキュメントを参照したり、 標準規格の仕様書を参照したりするべきです。
VisualC++ を使っているのなら、Microsoft社の MSDNライブラリを調べるのが妥当でしょうか。 あまりに情報量が多くて、探し出すのが大変ですが、それなら Google で「qsort MSDN」のように検索したら良いと思います。

また、辞書系の書籍を手元に置いておくのも手ですね。 C言語なら「Cリファレンスマニュアル」とか。

解説やサンプルコードが標準規格に沿っていない。

質問:サイト内の説明文や、取り上げられているプログラムが、標準規格と照らし合わせると適切でないことがあります。

回答:ご指摘はありがたく頂戴致しますが、「修正して下さい」というのは常に受け入れるというつもりはありません。

例えば、C言語編第0章に、「規格にこだわるよりも、上記のコンパイラで動作することを重視しています」と書いているように、 当サイトは、標準規格の解釈にこだわっていません。 規格に正確な解説やプログラムがお望みであれば、他をあたって下さい。

勿論、積極的に、標準規格を無視したり、必要以上に軽視したりするつもりはありませんし、 適宜「規格上は〜」のようなことを書いていることはあります。 「規格上は〜」と書いているのに、その部分が規格的に間違っているのなら、それは嘘になってしまうので、当然修正致します。

VisualStudio の使い方が分からない。

質問:サイトの記事以前に、そもそも VisualStudio の使い方がよく分かりません。

回答:今のところ、当サイトではこの辺をサポートできていません。 済みませんが、他のサイト様を探してみて下さい。

XXX編の追加予定はありますか?

質問:XXX を扱うコンテンツを追加する予定はありませんか?
(過去に、「アセンブラ言語」「ゲームプログラミング」「DirectX」「コンピュータ関連知識」を扱うコンテンツの追加要望が頂いています)

回答:現状 (2015年3月現在)、新しいコンテンツを追加する予定は立っていません。

サイト内のプログラムをそのまま使ってもいいですか?

質問:サイトに掲載されているプログラムを、そのまま自分のプログラムに組み込んで使用しても構いませんか?

回答:管理者としては、特に何か制限するつもりはありません。 勿論、金銭的なものだとか、著作権表記のようなものを入れろとかいうこともありませんから、自由にして頂いて構いません。

ただし、バグが無いことを保証している訳ではまったくありませんから、 何かトラブルが起きても自己責任でお願いします(特に、中身の理解できないものをそのまま使うことの危険性は、ちゃんと認識して下さい)。
バグ報告や、こうするとより良いといったご意見はありがたく頂戴いたしますが、修正依頼に応じるつもりはありません。

教育目的でサイト内の記事を印刷したり、学内・社内のサーバにコピーを置いたりして構わないか。

質問:学生へのプログラミングの授業や、新人研修の講義資料で使うなどの理由で、 サイト内の記事をそっくりそのまま印刷して配布したり、コピーを丸ごと学内や社内のサーバ(外部には公開していない)に置いたりしても良いでしょうか?

回答:教育目的での利用については、自由にして頂いて構いません
サイトのトップページには「サイトの大部分をそのままコピーして転載するような度を過ぎたことはしないで下さい。」と書いていますが、 これは、私以外の人間が、(特に Web上において)あたかも自分の記事であるかのように振る舞うことを禁止したものです。
セキュリティ的な問題等で、学内・社内からインターネットへのアクセスが難しいこともあるでしょうから、 サイトのコピーを非公開のサーバに置くことについても制限はありません (多少、最新版より古くなりますが、オフライン版もご活用ください)。

また、印刷物を配布すると、学校外や社外に持ち帰ってしまうケースもあるでしょうが、 どのみち、当サイト自体はインターネット上に公開されているものですから、その印刷物の扱いについても、特に気にしなくて結構です。

リンク先が存在しないことが多いのですが。

質問:「XXX については第YY章を参照」のようなリンクがよく切れているのですが?

回答:管理者の場合、新しいコンテンツ(例えばC言語編)を書き始めるとき、最終章までの章割りを先に決めています。 未来の章へのリンクが必要になったとき、その時点で予定されている章番号で一旦リンクを作っているので、 その段階では存在しないページにリンクされることがあります。 また、予定通りにいかず、章番号がずれていくこともあり、これまでに作ったリンクが追従できていないことがあります。

あるはずのページへリンクされずに、変なページに飛ばされていたら、教えて頂ければすぐに修正致します。 未来のページの場合は、そういうものなので無視して頂けるとありがたいです。

更新履歴

'2015/3/28 新規作成。



Programming Place Plus のトップページへ