1531

LESSWRONG
LW

1530
Software ToolsProgrammingProgramming ResourcesPractical
Personal Blog

16

Implicitly Typed C

by jefftk
11th Dec 2023
jefftk
1 min read
0

16

16

New Comment
Moderation Log
More from jefftk
View more
Curated and popular this week
0Comments
Software ToolsProgrammingProgramming ResourcesPractical
Personal Blog

I don't know any good reason to do this, but if you would rather be writing Python or JavaScript here's something you can do with a C compiler:

$ 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, mastodon