HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0908
ほしみモジュールのテストコード4解決


ほしみ

リンク

2024/9/8(Sun) 16:38:14|NO.102181

モジュールを作ってていつも思うんですがモジュールの下に皆さんコード書いてみますよね?
そこでテストしやすくしたいのですが・・
例えば、以下のコードを見てほしいです


#ifndef hoge #module hoge #deffunc test int p1, int p2 mes "test -> " + p1 * p2 return #global #endif //----モジュール単体テストコードをここに書いておいて、他のファイルからincludeされた時には実行しないようにしたい。 // #ifthis みたいなのが欲しいっす。 test 7, 8 test 3, 3 test 9, 9 test 10, 10


#if 1 とか #if 0に切り替えるのもめんどいですし。



この記事に返信する


MIZUSHIKI

リンク

2024/9/8(Sun) 19:56:43|NO.102183

多分、普通にやろうと思っても無理だろうな〜、、、ということで小細工してみました。

↓ module.hsp で保存

#module hoge #deffunc test int p1, int p2 mes "test -> " + p1 * p2 return #global #ifdef _debug ; 実行ファイル化したときはコンパイル時点で弾くように #module #deffunc local isFirstModule #global #ifdef isFirstModule@m0 ; 最初のモジュール名「@m0」で命令が存在するか test 7, 8 test 3, 3 test 9, 9 test 10, 10 #endif #endif

↓ メインスクリプト

#module ; ←ここで「@m0」モジュールを作る #global #include "module.hsp" mes "テストはスルーされてます。でもちゃんと実行できます。" test 1, 1

メインスクリプトの冒頭に
#module
#global
と書いて無名モジュールのカウントをアップさせてます。

誰かにモジュールをそのまま渡したら暴発する可能性が限りなく高いですが、自分で使う分には気を付ければ良いのではなかろうかと。

(最適化対策しないとモジュールごと消されると思ったけど動く。何故。)



MIZUSHIKI

リンク

2024/9/8(Sun) 20:13:12|NO.102184

すみません。「要望・提案」でしたね。
現状でこねくり回してみたアイデアの1つとして読み流してください。



ほしみ

リンク

2024/9/9(Mon) 22:23:29|NO.102186

おお!?、動作しました。

hsp内で、localと書かれた関数が先に登録されるって理解でいいのかな。

使ってみます!ありがとうございます。



ほしみ

リンク

2024/9/9(Mon) 23:35:16|NO.102187

あ、勘違いしてました。実行スクリプト側にモジュール定義しないといけないのか。
うーむ。やっぱ#ifthisほしいな。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.102181への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.