I do something similar (but less portable and more verbose) in C++ sometimes when I want to prototype something. My boilerplate is something like this:
HA! I was about to share my way, but you seem to have done more or less what I have in C instead!
I was having fun with old Golang C code before they started bootstrapping in Go and have found they were using interpunct to separate function names, so I decided to play around with shellscript-like C code to goof around:
#if 0
set -e; [ "$0" -nt "$0.bin" ] &&
gcc -O2 -Wall -Wextra -Wpedantic -std=c11 "$0" -o "$0.bin" -s
exec "$0.bin" "$@"
#endif
#include <stdio.h>
void runtime·sysAlloc(void);
int main(void)
{
unsigned age = 44;
printf("I am %u years old.\n", age);
runtime·sysAlloc();
return 0;
}
void runtime·sysAlloc(void) {
printf("Hello from C code, %d!\n", 90);
}