comma operator
    John Hascall 
    hascall at atanasoff.cs.iastate.edu
       
    Sat Aug  5 04:28:48 AEST 1989
    
    
  
In article <9736> debra at alice.UUCP () writes:
}In article <13074> robert at arizona.edu (Robert J. Drabek) writes:
  
     [... comma stuff ...]
}The following is also a problem:
}if i have something like
}	if (e)
}		return;
}and want to get some debug output, i would try
}	if (e)
}		printf("Hi\n"),return;
}but this gives syntax error. (at least in the compilers i've tried)
}Note that
}	if (e)
}		printf("Hi\n"),exit();
}compiles fine. It's just that "return" is treated differently.
     Return is "treated differently" because it is a statement,
     not an expression--exit being a function is an expression.
     (wouldn't it be even more obfuscating and fun is all C
     statements were also expressions!! [holy shades of BLISS])
     I use something like this for that reason:
     #define GAG(msg,cond)   return(printf("...%s\n", msg), cond)
     if (e) GAG("Why the devil is `e' true?", ERR_ETRUE);
John Hascall
ISU Comp Center
Ames IA
    
    
More information about the Comp.lang.c
mailing list