3 ms·
Yes, function declarations did look like that. And GCC accepts it totally silently in pedantic ANSI C mode, not even warnings: 11:44:57 cory@tizona /home/
by groovy2shoes 10y ago
Yes, function declarations did look like that. And GCC accepts it totally silently in pedantic ANSI C mode, not even warnings:
11:44:57 cory@tizona /home/cory/Workspace/test
$ cat knr.c
#include <stdio.h>
main(argc, argv)
int argc;
char **argv;
{
int z = foo(3, 4);
printf("foo is %d\n", z);
}
foo(x, y)
{
return x + y;
}
11:44:59 cory@tizona /home/cory/Workspace/test
$ gcc -std=c89 -pedantic -o knr knr.c
11:45:07 cory@tizona /home/cory/Workspace/test
$ ./knr
foo is 7
11:45:11 cory@tizona /home/cory/Workspace/test
$ gcc -v
Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/5.3.0/specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/5.3.0/lto-wrapper
Target: x86_64-slackware-linux
Configured with: ../gcc-5.3.0/configure [...]
Thread model: posix
gcc version 5.3.0 (GCC)
I seem to recall the compatibility was deliberate on the part of the ANSI C WG, for hopefully obvious reasons.
- qwertyuiop924 10y agoHuh. Didn't know that. Okay...