bill@uoregon.UUCP (bill) (10/06/84)
[this line intentionally left blank]
For those who are amused by C quirks:
While attempting to fix a program bug, I changed the code from 
arragement A to arrangement B (below).
--- A ---
char strings[SIZE1][SIZE2];
teststr(str)
char *str;
{
	register char (*b)[SIZE2] = strings;
	while (b < &strings[SIZE1]) {
		if (strcmp(str, b) == 0)
			break;
		b++;
	.
	.
	.
}
--- B ---
char strings[SIZE1][SIZE2];
teststr(str)
char *str;
{
	register char (*b)[SIZE2] = strings;
	while (b < &strings[SIZE1]) {
		if (strcmp(str, *b) == 0)
			break;
		b++;
	.
	.
	.
}
The result, of course, is that nothing changes.
	Randy Goodall, Perfect Software, Inc. (curtesy bill)
	{tektronix,hpcvra,hp-pcd}!uoregon!billgwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (10/07/84)
Would people please run their examples of "funny quirks in C" past "lint" before posting them. Naturally bogus source code produces funny results. Remember that many UNIX system C compilers will quietly accept incorrect usage of the language and generate code that appears to work. This is not a defect of C but rather of the compiler implementation.
greenber@acf4.UUCP (10/09/84)
<> Remember: It's not a bug --- it's a feature... Ross M. Greenberg @ NYU ----> allegra!cmcl2!acf4!greenber <----