<struct.h>
typedef struct{
int flag; //フラグ
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img; //画像
int slow; //スローかどうか
double x, y; //座標
}ch_t;
<graph.h>
extern ch_t ch;
この文がエラーが発生します内容は【識別子"ch_t"が定義されていません】とでます。どうしたらいいかわかんないので返答をよろしくお願いします。<(_ _)>
構造体が意味をなしていない…
Re: 構造体が意味をなしていない…
あるファイルに(graph.hかな)に
ch_t って突然書いてみたら,
コンパイラに「ch_t ってのは何だよ? しらねーよ」と言われた,という感じですか.
> <struct.h>
というヘッダファイルを一体何のために書いたのか? どう使うつもりなのか?
というあたりを詳しく説明できませんか?
ch_t って突然書いてみたら,
コンパイラに「ch_t ってのは何だよ? しらねーよ」と言われた,という感じですか.
> <struct.h>
というヘッダファイルを一体何のために書いたのか? どう使うつもりなのか?
というあたりを詳しく説明できませんか?
Re: 構造体が意味をなしていない…
C言語初心者のかたとお見受けします。大体想像がつくのでお答えしますね。
"struct.h"は構造体の定義として私のすきな流儀でかいてありすね。タグは必要がなければ書かない方がいいと思います。
"graph.h" は構造体変数の宣言で問題ないですね。
さて問題となるgraph.c を書いてみます。テスト用に int grp(void)関数を作りました。
次にメインのプログラム c1.c をかきます。他のファイルでextern 宣言されている 構造体変数 chをグローバル宣言します。
http://www2.koyoen.birdview.co.jp/~abcxyz/z0815a.png
#include ファイルはCの欠点でC#(C++++)では全く必要なくなりました。#include ファイルは覚えるのが大変ですよ。
"struct.h"は構造体の定義として私のすきな流儀でかいてありすね。タグは必要がなければ書かない方がいいと思います。
/* "struct.h" */
typedef struct{
int flag; //フラグ
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img; //画像
int slow; //スローかどうか
double x, y; //座標
}ch_t;
#include <stdio.h>
#include"struct.h"
ch_t ch;
extern int grp(void);
int main(void)
{
grp();
printf("%d\n",ch.flag);
return 0;
}
[code]
コンパイルは使い安いボーランドCの後継C++Builderを使いました。cx.bat バッチをダブルクリックするだけです。
cx.bat
[code]
bcc64 c1.c graph.c
dir *.exe
pause
c1.exe
pause
#include ファイルはCの欠点でC#(C++++)では全く必要なくなりました。#include ファイルは覚えるのが大変ですよ。
Re: 構造体が意味をなしていない…
CX-Builder はCommunity Ed. (64ビット版)ですが VS2017Community でコンパイルしてみると
cl.exe を使用します。
c.bat 'x64' モード
http://www2.koyoen.birdview.co.jp/~abcxyz/z0815b.png
cl.exe を使用します。
c.bat 'x64' モード
http://www2.koyoen.birdview.co.jp/~abcxyz/z0815b.png
Re: 構造体が意味をなしていない…
Windows Vista, VC++2008 でコンパイル/リンク してみました。
VS2017 Community と全く同じソース/ バッチファイルです。
(32ビット x86)
http://www2.koyoen.birdview.co.jp/~abcxyz/z0815c.png
VS2017 Community と全く同じソース/ バッチファイルです。
(32ビット x86)
http://www2.koyoen.birdview.co.jp/~abcxyz/z0815c.png