typedef(?) 構造体

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

typedef(?) 構造体

#1

投稿記事 by エンタープライズ(FF4) » 6年前

本を読んで勉強をしているのですが、その中のコーディング例でわからないところがあったので、質問させていただきます。

コード:

typedef struct tagDUNRECT {
    RECT rect; //区画範囲

    RECT room; //部屋範囲
}DUNRECT
というのがあって、いろいろ調べて

コード:

struct DUNGEON_RECTANGLE {
	RECTANGLE rect; //区画範囲

	RECTANGLE room; //部屋範囲
};
という風に書き換えました。

ですが、'RECT'に当たるところでエラーをはいてしまいます。

大文字ということで、定数なのかと思い int RECT = 0; を作ってみましたがダメでした。

通常の使い方では変数型を与えてやるといいみたいなのですが、コーディン例ではそれがないので、どうしたらよいのか困っています

よろしくお願いします。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: typedef(?) 構造体

#2

投稿記事 by みけCAT » 6年前

エンタープライズ(FF4) さんが書きました:'RECT'に当たるところでエラーをはいてしまいます。
「'RECT'に当たるところ」とはどのようなところですか?
エラーメッセージや、最小限の・自己完結した・確認可能なサンプルコードがあるとわかりやすいかもしれません。
エンタープライズ(FF4) さんが書きました:大文字ということで、定数なのかと思い int RECT = 0; を作ってみましたがダメでした。
元のコードではRECTは型名のようですが…?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

エンタープライズ(FF4)

Re: typedef(?) 構造体

#3

投稿記事 by エンタープライズ(FF4) » 6年前

エラーメッセージは私の理解度の低さから、まったく意味をなさないと思います。

定数なのか型名なのかの判断も迷うくらいなので><

確認可能のコードとありますが、構造体つくるうえで書けないところってかなり少なくないですか?

TKS

Re: typedef(?) 構造体

#4

投稿記事 by TKS » 6年前

>エラーメッセージは私の理解度の低さから、まったく意味をなさないと思います。
エラーメッセージの意味を汲み取るのは有識者の方々であって、貴方ではありません。
機械的に貼り付ければ、何かしらの返答が得られる可能性は上がります。

Math

Re: typedef(?) 構造体

#5

投稿記事 by Math » 6年前

Windows10、VS2017で

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    ChangeWindowMode(TRUE);
    DxLib_Init();
    
    typedef struct tagDUNRECT {
        RECT rect; //区画範囲
 
        RECT room; //部屋範囲
    }DUNRECT;
    
    WaitKey();      // キー入力待ち
    
    DxLib_End();
    return 0;
}
はエラー無く通ります。
もしかしてDXライブラリの本では?


アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: typedef(?) 構造体

#7

投稿記事 by みけCAT » 6年前

Math さんが書きました:(またはWin32?)
Win32 APIにはRECT構造体はあってもRECTANGLE構造体は無さそうなので、RECTANGLE型を使いたければ自分で宣言する必要がありそうですね。
オフトピック
Rectangle関数ならありますが、今回は関係ないでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

エンタープライズ(FF4)

Re: typedef(?) 構造体

#8

投稿記事 by エンタープライズ(FF4) » 6年前

TKS様>
私が型名のところを定数だと勘違いしていて、そのエラーメッセージを送ってしまえば、型名に直したらいけるという返答しか来ないと感じます。
機械的にやっても遠回りになってしまうと考えたので、あのように書かせていただきました。
ただ、言葉足らずだったので、どこまで理解していて、何を試したのかをもっと正確に書くようにします。
長文になりすぎると読んでもらえなくなってしまいそうで怖いのですが><;

Math様>
そのままコピペさせてもらって、動かしたらできました。

皆様、ありがとうございました!

返信

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