変数について

Last-modified: 2007-03-12 (月) 21:47:47

移行で一番戸惑うのは変数だと思います。
何せ数が多い。今回の変数の種類は

 
  • グローバルオブジェクトの変数(整数・実数・文字列・0/非0)
  • グローバルオブジェクトの配列変数(整数・実数・文字列・0/非0・構造体・関数)
  • グローバルオブジェクトの参照変数(全部の変数)
  • グローバルオブジェクトの定数変数(整数・実数・文字列・0/非0)
  • 構造体オブジェクト
     
  • ローカルオブジェクトの変数(整数・実数・文字列・0/非0)
  • ローカルオブジェクトの配列変数(整数・実数・文字列・0/非0・構造体・関数)
  • ローカルオブジェクトの参照変数(全部の変数)
  • ローカルオブジェクトの定数変数(整数・実数・文字列・0/非0)
     
    と、こんな具合。

とはいえ、

  • グローバルオブジェクトの変数(整数・文字列)
  • グローバルオブジェクトの配列変数(整数・文字列)
  • ローカルオブジェクトの変数(整数・文字列)
     
    だけでも、大抵のことは可能です。

さて、ソース上どこでも使える変数をグローバルオブジェクト、
ある一つの関数内でのみ使われる変数をローカルオブジェクトと呼びます。
変数は「宣言」することで使用可能になります。
このあたりSYS3.Xより不便です。

 

「宣言」は、最初にその変数を使う時、名前の前に「変数の型」をつけるということです。
つけるのは最初だけで、グローバルオブジェクトならそれ以降ずっと、
ローカルオブジェクトならその関数内で使う限り、
それ以上「宣言」をする必要はありません。

例:
SYS3.X場合


 *ラベル1:
!day:7!
'これから'H0,day:'日以内に君は結婚する'A
&0.adv:

SYS4.xの場合


void game_main(void)
{
int day; //宣言 この場合はint(整数)
day = 7;
'これから'N(day);'日以内に君は結婚する'A;
}