C variadic declarations
A bare trailing ... on an extern declaration describes C varargs. It does not collect a Moon array. The declaration below can be checked, but this lesson does not execute a variadic native call.
Moon int is signed 32-bit, long is signed 64-bit, and float is binary64. A C type's width depends on the selected target; matching a name is not enough. Native argument promotions and format strings must agree with the actual imported ABI. Do not assume a Moon string is a C char*.
extern fn log_values(count: i32, ...) -> i32
fn main() {}
Examples use the moon toolchain version shown beside each result.
Run locally
moon check main.mn
Ctrl/⌘+Enter checks the current lesson.