Hiragi(GKUTH)の日常
理系大学生の日記

分割コンパイルの罠

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前
住所: 大阪府
連絡を取る:

分割コンパイルの罠

投稿記事 by Hiragi(GKUTH) » 10年前

こちらのサイトを参考に既存のコードを分割(組み直したほうが良いレベルに汚いが)していたのですが、
例の「識別子が見つかりませんでした」エラーと格闘しています。

プロトタイプ宣言できてて、そのヘッダファイルをインクルードできてて、名前が合ってる,,,
他になにか原因でもあるのだろうか...と、今ココで「関数の中から他の関数を参照してるのがダメなんじゃね」
と思って書き換え中...出来たでござる。

なんと、日記を書くまでもなかったようです。ただコレ...ヘッダファイル内でのプロトタイプ宣言は
他のファイルから関数を参照するためのものであって、そのヘッダファイルを参照していない
ファイルからは参照できないのね...(今考えると当たり前だ。

なんとゲームプログラミングは難しい物なんだ...(すっとぼけ


メモメモ
► スポイラーを表示

アバター
usao
記事: 1889
登録日時: 12年前

Re: 分割コンパイルの罠

投稿記事 by usao » 10年前

includeって何か特別な謎のすごい不思議機能を有してるわけではなくて
単なるコピペなんですよね.
それの主たる使い方が

関数を呼ぶ箇所からは関数の宣言が見えてる必要がある
→OK.じゃあ使う箇所(cpp)に ことごとくプロトタイプ宣言を書こう!
→コピペめんどくさいです…
→includeっていうコピペ機能があるから使うよ!

ってだけ.

CODE:

//test.h
int main(

CODE:

//test.cpp
#include "test.h"
){  return 0; }

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前
住所: 大阪府
連絡を取る:

Re: 分割コンパイルの罠

投稿記事 by Hiragi(GKUTH) » 10年前

>usaoさん

なんと...わかりやすい、と言うか大分意外な感じです。
#includeとか最初に#がつく命令はプリプロセッサとか言ってつまりコンパイルの前に処理されるような物ということは知ってましたが、よもや
本当にただのコピペだとは...

アバター
usao
記事: 1889
登録日時: 12年前

Re: 分割コンパイルの罠

投稿記事 by usao » 10年前

まぁ,
「#includeって書いたらコピペだよ」
っていうしっかりとした決まりがあるのかどうか
私は知らないんですけどねw

CODE:

int data[] = {
#include "data.csv" //このファイルを書き換えてリビルドすればデータが変わるね
};
とか横着するとか楽しい予感…!
最後に編集したユーザー usao on 2014年9月22日(月) 18:38 [ 編集 1 回目 ]

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前
住所: 大阪府
連絡を取る:

Re: 分割コンパイルの罠

投稿記事 by Hiragi(GKUTH) » 10年前

>usaoさん

なんかソースの中にプリプロセッサ命令が色々入ってるコードとかあまり見たくない感じですね...
まぁ便利なんでしょうけども

アバター
usao
記事: 1889
登録日時: 12年前

Re: 分割コンパイルの罠

投稿記事 by usao » 10年前

#if~ とかがたくさんあるコードはわたしも見るのが嫌です.読みにくすぎる.
把握をエディタに頼ろうとしても色分けに失敗するエディタとかもありますしね.
あと,こいつらって,インデントをどうつければいいのかわからん…