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