#include #include #include "fac.h" int main(int argc, char** argv) { /* Make sure there is at least one command-line argument. */ if (argc < 2) { printf("Invalid argument. Expected '%s NUMBER'\n", argv[0]); return 1; } /* Convert the argument from a string to an int. We'll implicitly cast the int to a `u32`, which is what `fac` expects. */ u32 x = atoi(argv[1]); /* Initialize the Wasm runtime. */ wasm_rt_init(); /* Declare an instance of the `fac` module. */ w2c_fac fac; /* Construct the module instance. */ wasm2c_fac_instantiate(&fac); /* Call `fac`, using the mangled name. */ u32 result = w2c_fac_fac(&fac, x); /* Print the result. */ printf("fac(%u) -> %u\n", x, result); /* Free the fac module. */ wasm2c_fac_free(&fac); /* Free the Wasm runtime state. */ wasm_rt_free(); return 0; }