モジュール変数の配列の空きを求める

NYSL

NYSL

  • タグ:
  • タグはありません
#module
#defcfunc findUnusedModuleIndex array modules, \
local index
index = 0
foreach modules
if cnt != index : break
index++
loop
return index
#global
// #if 1
#if 0
#module test index, var
#modinit int p_val, \
local l_index
mref l_index, 2
var = p_val
index = l_index
mes strf("CREATED #%d (%d)", index, var)
return
#modterm
mes strf("DELETED #%d (%d)", index, var)
return
#global
newmod m, test, 0
newmod m, test, 1
newmod m, test, 2
newmod m, test, 3
delmod m(1)
newmod m, test, 4
newmod m, test, 5
newmod m, test, 6
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
delmod m(4)
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
delmod m(2)
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
newmod m, test, 7
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
newmod m, test, 8
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
newmod m, test, 9
mes strf("VACANT: #%d", findUnusedModuleIndex(m))
#endif
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX