Re:Chrome browser for businesses
by groovy2shoes on Sunday January 01, 2017 @11:52AM
(#13296255)
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.
Re:Chrome browser for businesses
by qwertyuiop924 on Monday January 02, 2017 @09:11AM
(#13301204)
Huh. Didn't know that. Okay...
Not so, AFAICT. For one thing, K&R function declarations looked like this:
Ever wonder where 1TBS came from?Also, in K&R, function prototypes didn't list args.