忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
HSPとC++にて製作中のシューティングゲームの開発日記など。 最近はプログラム雑記が多めです。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

 さっき始めて知ったソースとヘッダーの関係。
ヘッダーは使用するソースにインクルードする必要あるのに
ソースはプロジェクトに入れとくだけで勝手にまとめてくれるんですね・・・。
HSPだと全部繋げる必要あったのでその流れでずっと考えてました。
ヘッダがそもそも無いので当然と言えば当然ですが驚きです。
ついでなのでヘッダーのまとめ。

ヘッダーに書けるもの(この時点でメモリが確保されない物が相当)

・クラス定義
(※ただしメンバ関数の中身はソースに記述)
・#define文
・enumや実体を伴わない構造体

ヘッダーに書けないもの(実体を作る物は基本NG)

・メモリを使うもの
(例えばグローバル変数定義とか構造体定義とか)
int abc;
struct ABC {
          int aaa;
}xyz;
実際に書くとこんな感じかな・・・。
もし、int abcをヘッダに書きたいときは
extern int abc と書く。
この後必ずソースで実体を定義しなければならない
この他にグローバル関数も記述してはいけない。

ヘッダの重複コンパイルを防ぐために
#ifndef ABCDE
#define ABCDE

// ヘッダの中身

#endif         // ~ABCDE
と記述すると複数コンパイルされるのを防げる。
ABCDEは任意の文字。
ちなみに最初の文を #ifdef にしてしまうとヘッダがコンパイルされない。
この間違いをして壮絶な事になりました・・・||orz

どうしてヘッダの事を調べてるのかと言うと・・・
ZFのソースを一つのソースに書いてVSが異常に重くなってきたからです・・・。
細分化前が4000行で今チマチマヘッダと他のソースに細分化中です。
さて、一体何行まで減らせるのでしょうね・・・

拍手[0回]

PR
≪  61  60  59  58  57  56  55  54  53  52  51  ≫
HOME
Comment
この記事にコメントする
お名前:
URL:
メール:
文字色:  
タイトル:
コメント:
パス:
Trackback
この記事にトラックバックする:
≪  61  60  59  58  57  56  55  54  53  52  51  ≫
HOME
忍者ブログ [PR]