Owen Densmore wrote: > So the *extremely* common bug > of using = rather than == causes entirely unexpected consequences .. > launching a missile. > I expect to see both in many circumstances. For example, when opening a file to read that is absent or to write, and write permission is forbidden.
if ((fp = fopen (filename, "r")) == NULL) abort (); I haven't really created many bugs because of "=" vs. "==". GCC even gives a warning... $ cat t.c #include <stdio.h> #include <stdlib.h> static void launch_missle () { printf ("Missle launched\n"); } int main (int argc, const char **argv) { int red_button_pressed = 0; if (argc > 1) red_button_pressed = atoi (argv[1]); if (red_button_pressed = 1) launch_missle (); return 0; } $ gcc -Wall t.c t.c: In function ‘main’: t.c:18: warning: suggest parentheses around assignment used as truth value ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org