From: (SED AT ticnet DOT com) Newsgroups: comp.os.msdos.djgpp Subject: Optimizer and logical operators. Date: Thu, 03 Sep 1998 01:20:37 GMT Organization: The Internet Connection - ticnet.com (using Airnews.net!) Lines: 45 Message-ID: <4D580E8D0A378A4D.13E50F10CD0F8074.909D1CC8A7C84CD0@library-proxy.airnews.net> Abuse-Reports-To: abuse at ticnet.com to report improper postings NNTP-Proxy-Relay: library3 NNTP-Posting-Time: Wed Sep 2 20:21:25 1998 NNTP-Posting-Host: d-ftH+Bl.F%+TMKB (Encoded at Airnews!) 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 Hello, The question I have involves the GNU compilers in general. In the while loop in the code below, according to my ANSI C book, the 1st expression of the && operator will be evaluated, then the 2nd expression will be evaluated if the 1st is true. void str_remove_leading_space( char string[] ) { char *p1 = string; /* Skip past leading whitespace. */ while((*p1 != '\0') && isspace( *p1 )) ++p1; /* Shift remeinder of string backwards to overwrite leading space. */ /* If no leading spaces, then do nothing. */ if( p1 != string ) memmove(string, p1, strlen( p1 ) + 1); return; } So I should be able to rewrite: while( (*p1 != '\0') && isspace( *p1 ) ) ++p1; as while( (*p1 != '\0') && isspace( *(p1++) ) ); Does the optimizer honor the expression1 && expression2 rule also? In cases like this would I have to worry about my expressions being evaluated in a different order if I optimize? Thanks, /* Matt Darland dontspamme DOT mtd5922 AT omega DOT uta DOT edu remove dontspamme to reply, or post a follow up. I read this group VERY regularly. */