[過去ログ]
ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
ゲームボーイアドバンス(GBA)非公式開発 Part2 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
720: 名前は開発中のものです。 [sage] 2008/03/16(日) 06:19:18 ID:RXPkoV7l devkitProを使ってGBAでゲームを作っているのですが、 const int hoge1 = 1 ; const int hoge2 = hoge1 ; のようにすると、「initializer element is not constant」と出てしまいます。 VC++だと普通にコンパイルが成功しました。 Cではこういう事は出来ないのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/720
721: 名前は開発中のものです。 [sage] 2008/03/16(日) 12:05:58 ID:0SBCpDyI >>720 スレ違いだが回答。 C言語とC++のconst修飾子の動作の違いのために起きる問題。 const int hoge1 = 1 ; がC言語では変数として定義されるのに対し、C++では定数として定義される。 このため、 const int hoge2 = hoge1 ; がエラーとなる(初期値つき変数に定数以外を指定したから)。 結論:C++でなくC言語で書くなら、定数はマクロやenumで定義しましょう。 余談だが、const修飾子には他にも違いがあり、グローバル変数をconst修飾した場合に、 C言語ではデフォルトで外部リンケージ(要するにextern)になるのに対し、 C++では内部リンケージ(要するにstatic)となる。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/721
725: 720 [sage] 2008/03/17(月) 03:34:16 ID:C1jKoyjP なるほど、そもそもCとC++じゃconstの仕様が違うのですね。 良く分かりました。 板違いの質問に答えて頂き、ありがとうございました。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/725
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s