sample_variadic.hsp

sample\basic\sample_variadic.hsp » Plain Format

;
;	sample_variadic.hsp — 可変長引数 (...) サンプル
;
;	#func / #cfunc のパラメータリスト末尾に ... を書くことで、
;	C の printf 系のような可変長引数 DLL 関数を呼べます。
;

	; --- sprintf を #cfunc で宣言 (戻り値 = 書き込んだ文字数) ---
	#uselib "msvcrt.dll"
	#cfunc crt_sprintf "sprintf" var, str, ...

	sdim s, 1024

	; 整数
	crt_sprintf s, "1 + 2 = %d", 3
	mes s

	; 整数 + 浮動小数点
	crt_sprintf s, "pi = %.5f, e = %.5f", 3.14159, 2.71828
	mes s

	; 文字列 + 整数
	crt_sprintf s, "Hello, %s! You are %d years old.", "HSP", 25
	mes s

	; 多数の引数
	crt_sprintf s, "%d, %d, %d, %d, %d", 10, 20, 30, 40, 50
	mes s

	; --- #func (命令版) でも使える ---
	#func crt_sprintf_cmd "sprintf" var, str, ...

	crt_sprintf_cmd s, "Command style: %s = %d", "answer", 42
	mes s

	mes ""
	mes "可変長引数サンプル完了"