Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
Because while(1) still has a condition that is checked on every loop iteration when optimizations are disabled. for(;;) can be read as "forever".
The Beauty of Bresenham's Algorithm
11–20 of 50 posts
Re: The Beauty of Bresenham's Algorithm
#12Earlier quoted context omitted.
Because while(1) still has a condition that is checked on every loop iteration when optimizations are disabled. for(;;) can be read as "forever".
FWIW, GCC and Perl generate the same code for both. http://stackoverflow.com/questions/885908/while-1-vs-for-is-...
for (;;);
is the same as
{ while (true) { ; ; } }
I originally asked this question cos it's used this way in first C program in the link. Bit of a tangent though :P
Re: The Beauty of Bresenham's Algorithm
#13Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
I prefer "for(;;)" because it is explicitly defined as an infinite loop, but "while(1)" needs an implicit cast of "1" to "true", and even then there's an implicit test for "true".
Re: The Beauty of Bresenham's Algorithm
#14Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
Why do people write while(1) instead of for(;;)? Are you saying that "while(1)" is superior in some way? Why? I prefer "for(;;)" because it is explicitly defined as an infinite loop, but "while(1)" needs an implicit cast of "1" to "true", and even then there's an implicit test for "true".
Re: The Beauty of Bresenham's Algorithm
#15Bresenham's Algorithm is a useful argument when someone suggests that software patents are a good thing. How far back would the progress of computer graphics have been set if Bresenham or his employer had claimed ownership of this idea?
I think you do Bresenham a great disservice, by underestimating how far ahead of its time this really was. This was published in 1962, so any patent would have expired in 1982. So any patent would probably have had almost no effect, because it would have expired before the market advanced to the point where it was generally applicable.
Re: The Beauty of Bresenham's Algorithm
#16Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
Why do people write while(1) instead of for(;;)? Are you saying that "while(1)" is superior in some way? Why? I prefer "for(;;)" because it is explicitly defined as an infinite loop, but "while(1)" needs an implicit cast of "1" to "true", and even then there's an implicit test for "true".
Re: The Beauty of Bresenham's Algorithm
#17Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
[0] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf (See 6.8.5.3)
Re: The Beauty of Bresenham's Algorithm
#18Why do people write non-conditional loops as "for(;;)" instead of "while(1)"?
Why do people write while(1) instead of for(;;)? Are you saying that "while(1)" is superior in some way? Why? I prefer "for(;;)" because it is explicitly defined as an infinite loop, but "while(1)" needs an implicit cast of "1" to "true", and even then there's an implicit test for "true".
http://pubs.opengroup.org/onlinepubs/007904975/basedefs/stdb...
Edit: Of course I'm talking about C here. Also, I prefer for(;;) because it's an easy to recognize idiom that means "infinite loop."
Re: The Beauty of Bresenham's Algorithm
#19Re: The Beauty of Bresenham's Algorithm
#20By the way, I had a teacher (J.P Reveilès) who had invented the theoretically fastest drawline algorithm ever: he simply figure out that, for a line, there is a pixel pattern which repeat itself (unless the variation is a transcendental number http://en.wikipedia.org/wiki/Transcendental_number ) so you only have to compute that pattern once and copy/paste it. If I remember well, for example, a line which has a variat…