Why some people do:
char baa(int x) {
static char foo[] = \" .. \";
return foo[x ..];
}
instead of:
char baa(int x) {
In typical implementations, the version with static will just put the string somewhere in memory at compile time, whereas the version without static will make the function (each time it's called) allocate some space on the stack and write the string into that space.
The version with static, therefore,
foo is something bigger).