最近「独習C」と言う
ハーバート・シルト著の参考書を読みながら
プログラムをパチパチ打っています。
C言語暦は1ヶ月位で、基本構文を覚えた位です。
それらをどう組み合わせて使ったら良いのか、までは
まだ大きな物を作った事が無いので分かりません。
そして、最近ぶっつけ本番で
DXライブラリを使ったゲームを作り出しました。
今回難儀している所は
「structをexternするにはどうすれば良いんだろう!?」
です。独習Cにも分割コンパイルの方法は
externを使え位しか記載されていなくて?
普通に
extern struct Test{
int a;
int b;
int c;
}tt;
とやってもコンパイラがエラーを出して来ます。さっき難儀しながら現在作っているゲームのソースと同じ感じで
まずい部分をピックアップしたプログラムを作って見ました。
────────────────
[ Player.h ]
#pragma once
extern struct tt TEST;
void Stick(void);
────────────────
[ Player.cpp ]
#include"Player.h"
void Stick(void)
{
TEST.a=20;
TEST.b=30;
TEST.c=40;
}
────────────────
[ Test.h ]
#pragma once
#include<stdio.h>
struct Test{
int a;
int b;
int c;
}tt;
#include"Player.h"
────────────────
[ Main.cpp ]
#include<stdio.h>
#include"Test.h"
int main(void)
{
a=10;
b=20;
c=30;
return 0;
}
────────────────
このソースを実行すると下記のエラーが出ます。Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Player.h: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
質問をまとめてみますと
structをexternするにはどうすれば良いのでしょうか。
環境は下記の通りです。
OS:WindowsXPpro SP3
コンパイラ:Borland C++ 5.5.1
ライブラリ:DXライブラリ