Hacker News new | ask | show | jobs
What is the name of this operator: “--”? (stackoverflow.com)
8 points by QuarkSpark 4983 days ago
5 comments

The title is missing a >. Should be "-->"
For some reason it changes the "-->" back to "--" I tried many times/ways to include the entire operator before giving up & just posting it..
What about > ?
Could someone break this down and explain it to me? [1] It looks hilariously atrocious yet interesting at the same time.

[1]: http://stackoverflow.com/questions/1642028/what-is-the-name-...

Basically, somebody sees some code with two operators (decrement and less than) with no whitespace between them and thinks it's a single operator.

The answer that shows it with the brackets is probably the clearest:

    while ((x--) > 0)
    { ... }
The compiler sees that as the same as (x--> 0)

So it checks if x is more than zero and then decrements it each loop iteration.

  #define as ;while
  ...
  do printf("n is %d\n", n) as ( n --> 0);
Parses to (white space adjusted for clarity):

  do printf("n is %d\n", n);
  while ( n-- > 0);
The preprocessor replaces the macro "as" with ";while" creating a do-while loop.

  do {
   printf("%d",x);
  } while (x-- > 0);
From the thread:

  while (x --\
              \
               \
                \
                 > 0) 
       printf("%d ", x);
That's fantastic!
This looks mostly like a function that sacrificed readability for brevity, to the detriment of at least one reader.
Decrement x = x -1