From: Erik Max Francis <max AT alcyone DOT com> Newsgroups: comp.os.msdos.djgpp Subject: Re: expression evaluation guarantees Date: Fri, 08 Aug 1997 09:42:30 -0700 Organization: Alcyone Systems Lines: 34 Message-ID: <33EB4C76.78E76FEB@alcyone.com> References: <33EADE57 DOT F93 AT pentek DOT com> NNTP-Posting-Host: newton.alcyone.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Charles Krug wrote: > To those of you who bit my head off (OUCH) consider the following, which > came up last week: > > if ((get_user_response()) && (format_hard_drive())) > printf("Hard drive formatted"); > > Are you willing to bet your hard drive that your compiler is ANSI > complient? I have yet to see _any_ ANSI C compiler that does not do short circuiting properly. So in the case of if (get_user_response)) format_hard_drive(); are you willing to bet that all compilers are ANSI compliant? Same question. Equally stupid. The short circuiting && and || operators were _introduced_ to C for their short circuiting properties (before that bitwise & and | were just used). They weren't introduced in ANSI C, or even K&R C, but in traditional C. Short circuiting is about as built into the language as if statements. -- Erik Max Francis, &tSftDotIotE / email / mailto:max AT alcyone DOT com Alcyone Systems / web / http://www.alcyone.com/max/ San Jose, California, United States / icbm / 37 20 07 N 121 53 38 W \ "Love is not love which alters / when it alteration finds." / William Shakespeare, _Sonnets_, 116