Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!usc!apple!fox!portal!cup.portal.com!Tim_N_Roberts From: Tim_N_Roberts@cup.portal.com Newsgroups: comp.lang.c Subject: Re: powerful expressions Message-ID: <24735@cup.portal.com> Date: 5 Dec 89 21:10:56 GMT References: <12855@cit-vax.Caltech.Edu> Distribution: usa Organization: The Portal System (TM) Lines: 17 In <12855@cit-vax.Caltech.Edu>, wen-king@cit-vax.Caltech.Edu (King Su) shares: > ((qhead) ? (qtail = qtail->next = qnew) > : (qtail = qhead = qnew))->next = 0; I am truly sorry for the order-of-evaluation flood that I am surely about to bring down upon myself, but... Is this guaranteed to work? Does ANSI require a sequence point in (qtail = qtail->next = qnew) so that it works? I have always been hesitant to write something like that, because I felt that the compiler could reasonably be expected to assign qnew to qtail first and thereby screw up qtail->next. Am I fearing needlessly? TNR@cup.portal.com | "Your Tax Dollars At Work." ...!sun!portal!cup.portal.com!tnr | If it wasn't so sad, it'd be funny.