Implicitly Typed C |
December 11th, 2023 |
| tech |
$ cat tmp.c
foo(x) {
return x+5;
}
bar() {
return 4;
}
main() {
printf("%d\n", foo(bar()));
}
$ gcc -w -o tmp.out tmp.c && ./tmp.out
9
This code takes advantage of a historical quirk of C where types are
assumed to be int unless otherwise specified:
foo(x) {...} is equivalent to int foo(int x)
{...}. Additionally the printf works because gcc
includes stdio.h by default, and main is
special-cased to assume a final return 0.
I've occasionally used this style when writing example code to remove visual noise, but it's probably not a good idea there either.
Comment via: facebook, lesswrong, mastodon, substack