[OK]を、私はこれは一体として、おそらく醜いです理解し、私はGCCは、それが「可変ファイルスコープで修正された」あることについて泣いて、はなぜ私はグローバル配列の長さなどTILES_X
、TILES_Y
またはTILES_TOTAL
を使用することはできません理解することはできません。可変的に変更されていますが、間違っていますか?
/* How many points should be in each tile? */
/* NOTE: MUST BE POWER OF TWO */
#define TILE_WIDTH 32
#define TILE_HEIGHT TILE_WIDTH
#define TILE_AREA (TILE_WIDTH * TILE_HEIGHT)
/* How far should the origin of each tile be spaced? */
#define TILE_OFFSET_X TILE_WIDTH
#define TILE_OFFSET_Y (TILE_HEIGHT * 0.866f)
/* Relative to the origin, where does the tile really end? */
#define TILE_MIN_X 0.0f
#define TILE_MIN_Y 0.0f
#define TILE_MAX_X (TILE_OFFSET_X + 0.5f)
#define TILE_MAX_Y (TILE_OFFSET_Y + 0.5f)
/* How many tiles should be cached offscreen? */
#define TILE_BLEED 2
#define CAMERA_WIDTH 256.0f
#define CAMERA_HEIGHT 192.0f
#define TILES_X ((size_t) ((float) ((CAMERA_WIDTH * 2.0f) + (TILE_BLEED * (TILE_WIDTH + TILE_WIDTH)))/(float) TILE_OFFSET_X))
#define TILES_Y ((size_t) ((float) ((CAMERA_HEIGHT * 2.0f) + (TILE_BLEED * (TILE_HEIGHT + TILE_HEIGHT)))/(float) TILE_OFFSET_Y))
#define TILES_TOTAL (TILES_X * TILES_Y)
TILES_X expands to:
((size_t) ((float) ((256.0f * 2.0f) + (2 * (32 + 32)))/(float) 32))
これは定数と評価する必要がありますか?つまり、そこには何も変わりません。この初期化子で変数を定義しようとすると、変数がどのように変更されているのか再び泣いてしまいます。私はどのように表示されません。同じエラーに関する他の記事がありますが、const intの代わりにenumまたはdefineを使用して解決されています。 6.6パー
割るあなたは、コンパイラが実際に文句のコードを投稿できますか? – Mat