Hacker Newsnew | comments | show | ask | jobs | submit login

Actually, the order in which function arguments are evaluated is undefined. http://c-faq.com/expr/comma.html

You can use a comma in other expressions to introduce a sequence point: http://c-faq.com/~scs/cgi-bin/faqcat.cgi?sec=expr#seqpoints




Thanks for your clever comment and for those emitting similar concerns.

You surely are right. I wanted to give a quick example, turns out it was a bad one. Next time I'll write :

  int i = 0;
  printf("%i", i++); // prints 0
  printf("%i", ++i); // prints 2

-----


turns out it was a bad one

Given that you were making a point on an article about the complexity of C, I'd say it was an unintentionally excellent example.

-----


If you really want to make your brain hurt, there was an article on HN a while ago about the following statement:

    i = i++;
Evaluating that expression takes a real dive into the guts of the C spec.

-----




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: