今、龍神録プログラミングの5章をやっています
そこで、まずメインファイルの一番上の
#include "../include/GV.h"
とありますが、この
#include "../include/GV.h"
がどういうことかいまいちわかりません。
#include "自作のヘッダ" というように宣言すること自体はわかりますが、../とinclude/の意味がよくわからないのです。
さらに下のところの--GV.h変更--のところの
#include "../../../include/DxLib.h"
この意味も同じです。
#include "../include/GV.h"
#include "../../../include/DxLib.h"
は似たような意味だとは思うのですが、../の個数がどこで決まっているのかがよくわからないです。
ゲームプログラミングの館で、フォルダより上のフォルダにあるtest.bmpを指定したい時は "../test.bmp"というように書かれていたのを覚えていますが、ここで上のフォルダと言われても?となってしまいます。
どうかご教授お願いします
../とinclude/の意味について
Re:../とinclude/の意味について
「..」は一つ上の階層を意味します。
「/」は階層の境界を意味します。
ですから、
「../include/GV.h」
というのは
「一つ上の階層の、includeフォルダにあるGV.hというファイル」を意味します。
「/」は階層の境界を意味します。
ですから、
「../include/GV.h」
というのは
「一つ上の階層の、includeフォルダにあるGV.hというファイル」を意味します。
Re:../とinclude/の意味について
"./" は現在のフォルダです。(カレントディレクトリ)
"../" は現在のフォルダの一つ上です。
と、ここまでは分かってるようなので、その先です。
../が付くたびに一つ上に上がっていきます。試しに↓を日本語にすると
例:#include "../../../include/DxLib.h"
現在のフォルダの一つ上の、もう一つ上のフォルダの、更に上のフォルダ、の中にあるincludeというフォルダの中に、DxLib.hというファイルがあるだろう。ということです。
んでもって ../ の個数が何を基準としているかは、それを必要としているモノの場所によります。
例えば、例に出ている../test.bmpのような実行ファイルで使うファイルは実行ファイル(exeファイル)を中心に考えます。
ですが、ソースファイルはソリューションで使われるのでソリューションを中心に考えます。ですので、普段見慣れた自作ヘッダーファイルが
#include "hogehoge.h"
だけでインクルード出来るのは、自動的にソリューションと同じフォルダに置かれているからです。これは便利ですがソリューションの置かれているフォルダというのは大抵たくさんのファイルがあります。ごちゃごちゃしています。なのでソースファイルだけ上の階層にまとめたりする時にたいがさんが疑問に思ったような書き方をします。
"../" は現在のフォルダの一つ上です。
と、ここまでは分かってるようなので、その先です。
../が付くたびに一つ上に上がっていきます。試しに↓を日本語にすると
例:#include "../../../include/DxLib.h"
現在のフォルダの一つ上の、もう一つ上のフォルダの、更に上のフォルダ、の中にあるincludeというフォルダの中に、DxLib.hというファイルがあるだろう。ということです。
んでもって ../ の個数が何を基準としているかは、それを必要としているモノの場所によります。
例えば、例に出ている../test.bmpのような実行ファイルで使うファイルは実行ファイル(exeファイル)を中心に考えます。
ですが、ソースファイルはソリューションで使われるのでソリューションを中心に考えます。ですので、普段見慣れた自作ヘッダーファイルが
#include "hogehoge.h"
だけでインクルード出来るのは、自動的にソリューションと同じフォルダに置かれているからです。これは便利ですがソリューションの置かれているフォルダというのは大抵たくさんのファイルがあります。ごちゃごちゃしています。なのでソースファイルだけ上の階層にまとめたりする時にたいがさんが疑問に思ったような書き方をします。
Re:../とinclude/の意味について
とれる意味としては
../ の .(ドット)の個数がなぜ2個なのかわからない(1個でもいいんじゃないか?どこに定義してあるの?)
.(ドット)の個数がわからないので、../include/hoge.h の意味がわからない
ということでしょうか?
../ の .(ドット)の個数がなぜ2個なのかわからない(1個でもいいんじゃないか?どこに定義してあるの?)
.(ドット)の個数がわからないので、../include/hoge.h の意味がわからない
ということでしょうか?
Re:../とinclude/の意味について
>Dixqさん
ありがとうございます!
それぞれの記号の意味を知ることができました。
..と/は別々の意味を持っていたんですね
>ゆーずぃさん
ありがとうございます!
とてもわかりやすいです。特に、基準がどこかについてよく理解できました。
>dicさん
すみません、わかりにくかったですね
../ の固まりがいくつってのがどこで決まるか知りたかったって感じです
みなさんのおかげで解決しました!
ありがとうございます!
それぞれの記号の意味を知ることができました。
..と/は別々の意味を持っていたんですね
>ゆーずぃさん
ありがとうございます!
とてもわかりやすいです。特に、基準がどこかについてよく理解できました。
>dicさん
すみません、わかりにくかったですね
../ の固まりがいくつってのがどこで決まるか知りたかったって感じです
みなさんのおかげで解決しました!