そのプログラムで奇妙なことが起きていることに気が付きました。
#deffuncや#defcfuncで定義した命令って引数の省略はできませんよね?
今作っているプログラムで定義している命令は文字列と整数の二つの引数を
受け取る命令なのですが、ふたつめの引数の整数を省略しても
エラーにならないことに気が付きました。
試しにいくつか確かめたところ、int型ならば引数の場所がどこであろうと省略でき、
省略したときは仮引数に0が入ることがわかりました。
これって仕様にないですよね?
(だって引数の省略はできませんってエラーが存在しますし、int以外だとこのエラー発生しますし。)
ちなみに検証に使ったプログラムは以下のものです。
一番下で呼び出してるところの引数を省略して実行してみてください。
#module #deffunc test int i,int i2,int i3 mes i mes i2 mes i3 return 0 #global test 1,2,3
また、引数の型を変えてみるとintの時だけ省略できると思います。