s2. サウンドノベル風文字列表示法1 のエラーについて

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

s2. サウンドノベル風文字列表示法1 のエラーについて

#1

投稿記事 by こめかみ » 17年前

はじめまして。最近ゲームプログラミングの館で勉強をしているこめかみと申します。
触れ込みのとおり大変わかりやすく管理人のDixqさんには感謝の念が尽きません。

早速質問です。
サンプルプログラムを上から一つづつ咀嚼してる最中なのですが、タイトル通り"s2. サウンドノベル風文字列表示法1"のサンプルプログラムのコンパイルでエラーが解決できなく完全にお手上げ状態で困っています。
環境はWindowsXP,BCCでエラーの内容は以下のとおりです。

> c:\borland\bcc55\Bin\make.exe -fDebug\test.mak TARGET
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -W -3 -Od -w- -AT -pc -H- -k -b -v -y -DDEBUG -nDebug -c D:\ゲームプログラミングの館\test\DrawPixel.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
D:\ゲームプログラミングの館\test\DrawPixel.cpp:
エラー E2264 D:\ゲームプログラミングの館\test\DrawPixel.cpp 4: 式が必要
*** 1 errors in Compile ***

** error 1 ** deleting Debug\DrawPixel.obj

Make End !! (Elapsed time 0:01.500)


他のサンプルプログラムは問題なくコンパイル(メイク?コンパイルとメイクの違いがわかりません)後、実行できて来ました。別のサンプルプログラムでコンパイルしても滞りなく実行できますので環境設定を書き換えてしまったと言うわけでは無いように思います。

何が問題で何を直せばこのコンパイルが成功するのか。どうぞよろしくお願いします。

似たような結果を出すサンプルプログラムはDXライブラリ本家にもありそちらは問題なく実行迄こぎつけるのですが。僕はこちらでお世話になるからにはこちらのサンプルも把握したいと思っています。

ええと・・・一応スクショも。これでいいのかな?間違えたらすみません。

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#2

投稿記事 by ibis » 17年前

原因はoldKeyの初期化です。
初期化のやり方を変えてみてください。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#3

投稿記事 by こめかみ » 17年前

oldKey[256]=""にしたら実行できました。ibisさんありがとうございました。

あと、このプログラムはサンプルのコピーなのでサンプルの間違いということになるのでしょうか。
管理人さんに伝えたほうがいいのかな。

あの、ココを見てたら直してくださいね。それでは。

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#4

投稿記事 by ibis » 17年前

いえ、コンパイラの違いによるものです。
BCCではエラーですが、Visual C++では正常にコンパイルできますよ。
ちょっと試してみました。
 コンパイルできるのは
  VC++
  GCC
 できないのは
  BCC
  DMC
 何故かコンパイルできてリンクできないのは
  LightC
という結果に。
中途半端なことに、ほぼ50:50ですねぇ。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#5

投稿記事 by こめかみ » 17年前

同じ言語でもコンパイラによって違うのですか。
勉強になります。

YuO

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#6

投稿記事 by YuO » 17年前

> 同じ言語でもコンパイラによって違うのですか。

コンパイラによって,どこまで標準に準拠しているかや,拡張をしているかが異なります。
また,C/C++にはImplementation-definedという,標準がコンパイラに決定を依存している部分もあります。

今回の場合,ISO/IEC 14882:2003の8.5.1 Aggregatesの第8段落第2文に
> An empty initializer-list can be used to initialize any aggregate.
とあるので,該当箇所でエラーが発生するのは非標準の振る舞いということになります。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#7

投稿記事 by こめかみ » 17年前

ええと、ISO/IEC 14882:2003の8.5.1 Aggregates というのはどこにあるんでしょうか。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#8

投稿記事 by こめかみ » 17年前

あ、書籍でしょうか。ありがとうございます。

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#9

投稿記事 by ibis » 17年前

ISO/IECの国際規格ですねぇ。
14882でしたらC++ですね。

ISOよりもJISの方がわかりやすいかと思いますよ。
内容は同じなのですが、ISOは英語でJISは日本語です。

JISのC言語の規格はこのサイトにあります。
http://www.jisc.go.jp/app/pager?id=8911

同じく、C++はこちら。
http://www.jisc.go.jp/app/pager?id=9014

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#10

投稿記事 by こめかみ » 17年前

返信ありがとうございます。
せっかくリンクしていただいたのですがリンク先にファイルがありませんでした。
ググれば見つかるのかな。

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#11

投稿記事 by ibis » 17年前

あ、すみません。

リンク先の上のほうに「PDF Adobe」ってかかれた小さい画像がありますよね。
それをクリックしてみてください。

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#12

投稿記事 by ibis » 17年前

・・・じゃなかった。
確かにCの方はリンク切れですね。
こちらが正しいアドレスです。
http://www.jisc.go.jp/app/pager?id=9674

ibis

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#13

投稿記事 by ibis » 17年前

・・・あれ、何度か試しましたが、リンク切れでも無いっぽいですよ?
行けたり行けなかったりします。
というかC規格のアドレスは2回載せましたが、どちらでも同じところにつながってるっぽいです。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#14

投稿記事 by こめかみ » 17年前

IEとFIREFOXとoperaで試しましたがダメでした。
operaだけ少し表示が違うようですが。
うーん。
http://www.jisc.go.jp/
ここには問題なく繋がるのですが。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#15

投稿記事 by こめかみ » 17年前

言語の検索でたどりつけました。

あ、普通にクリックで落とせますね。失礼しました。
operaで別のタブで開くのが癖になっているもので。

ありがとうございます。

管理人

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#16

投稿記事 by 管理人 » 17年前

VC++でプログラムを書かれる事を前提としたサンプルなので、ほかのコンパイラの事を考えていませんでした。
確か{}の所を{0,}とすればよかったのではないかと思います。
他にもfor(int i=0;)という書き方はC++のコンパイラではないとエラーになると思いますし、
BCCではextern文はmain関数内で宣言出来ないなど、色々とVC++以外ではエラーになることが多いと思います。
なるべく、多いコンパイラで問題ないように修正していこうとおもいます。
混乱させてしまいすみません。

こめかみ

Re:s2. サウンドノベル風文字列表示法1 のエラーについて

#17

投稿記事 by こめかみ » 17年前

そうなんですか。
つまずいたら質問に来ますので、その時はよろしくお願いします。

閉鎖

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