Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Johann 'Myrkraverk' Oskarsson Newsgroups: comp.compilers Subject: Re: What is the meaning of an expression? Date: Thu, 3 Feb 2022 12:50:15 +0000 Organization: Easynews - www.easynews.com Lines: 19 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-02-002@comp.compilers> References: <22-01-052@comp.compilers> <22-01-058@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="82992"; mail-complaints-to="abuse@iecc.com" Keywords: C, standards Posted-Date: 03 Feb 2022 15:14:27 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Content-Language: en-US In-Reply-To: <22-01-058@comp.compilers> Xref: csiph.com comp.compilers:2881 On 1/15/2022 2:21 PM, matt.ti...@gmail.com wrote: > Of course, expressions in most languages can also include function calls and > operators that produce side effects, like "printf("%d",++i);", which certainly > has a meaning even though it produces no meaningful value. Actually, it does. It returns the number of characters written, or -1 on error. Therefore, you can write a /meaningful/ hello world like this, int main( int argc, char *argv[] ) { return printf( "hello\n" ); } Of course, people generally don't like to put the return before the printf(), and there's no telling what the operating system will do; think OpenVMS. -- Johann | email: invalid -> com | www.myrkraverk.com/blog/ I'm not from the Internet, I just work there. | twitter: @myrkraverk