hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
ユーザー定義命令・関数の宣言と定義を分離して記述する - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ

hsp3.png

ユーザー定義命令・関数の宣言と定義を分離して記述する

C言語などでは関数の宣言(declaration)(プロトタイプ宣言)と定義(definition)(処理実体の定義)を分離して記述することができ、宣言以降であれば関数定義の記述位置に影響されない関数呼び出し(関数定義より前での呼び出し)を行うことができます。
HSPでは仕様としての関数宣言は(今のところ)実装されてはいませんがユーザー定義命令・関数に対して似たようなことを行うことはできます。
具体的な方法は次のサンプルプログラムを参考にして下さい。-- naznyark? 2006-11-21 (火) 02:17:23 サンプル1

+  サンプル1

サンプル2
モジュール変数操作命令の場合。

+  サンプル2

コメント

  • modfuncで定義した関数ではモジュール変数にアクセスするとエラーが出るのでこの方法は使えないみたい -- Shark++ 2007-01-28 (日) 20:59:48
  • こういう方法もあったんですね [syobon] 普段gosubばかり使ってたので少しカルチャーショックです [worried2]
    このスクリプトの場合、定義の部分をメインのスクリプトより下においておけばCらしくなりますね。
    - …とおもったらできませんでしたね [worried2]  しかしこれはかなり参考になります。- As 2007-01-29 (月) 00:12:14
  • モジュール変数操作命令でもできないことはないですが・・・、モジュール変数へのアクセスの記述がちょっと手間です。 -- naznyark? 2007-01-29 (月) 01:23:44
  • 実のところモジュール変数操作命令はコンパイル時に #deffunc + 非公開(?)キーワード の形に変換されていますのでそのキーワードを使えばもう少しすっきりした形にできるのですが・・・。 -- naznyark? 2007-01-30 (火) 01:51:27
  • なるほど、#deffunc で int+verを付けるですか...その発想は無かったです [a]

    #define _modver_ int ___d1,var ___d2 とかすれば少し見やすくなるです。-- Shark++ 2007-01-30 (火) 08:58:26

  • ダミーなんですからエイリアス名イラナイでしょ -- 2008-12-13 (土) 00:34:23
  • 3.2からは呼び出し位置よりあとに宣言しても使えるようになりました。ただモジュール変数命令はまだ対応してないみたい。 -- satto? 2009-08-04 (火) 23:40:14
  • 正しく言うと、#modfunc, #modcfunc には対応しているが、#module より前で newmod できないからぜんぜん意味ない、ということでしょうか。 [worried2] -- 2009-08-05 (水) 15:55:47
  • #deffunc で、与えられた配列を newmod する命令を定義しておけば、擬似的に可能です。 -- 連投? 2009-08-05 (水) 15:56:41
    +  ファクトリつき

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル:
fileseparate_dec_and_def_sample02.hsp
475件 [詳細]
fileseparate_dec_and_def_sample01.hsp
607件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2009-08-05 (水) 16:02:52 (1586d)