Portál AbcLinuxu, 5. května 2025 09:11
#include asm/processor.h int main(void) { while(1 == 1) { cpu_relax(); } return 0; // Do budoucna }
1==1
v podmínce stačí prostě 1
. while(1==1)
, while(1)
i třeba for(;;)
generuje úplně stejný assembler. Takže je to v podstatě jedno.
while(1)
, protože neoptimalizující kompiler by zde musel tu testovací instrukci vložit. Takže pro nekonečný cyklus (pokud je by design, pochopitelně for(;;)
while(1)
, resp. v C++ while(true)
, přestože tak záměrně spoléhám na optimalizaci kompilátoru.
Já mám k tomu ohavnému for-cyklu nějaký nepřekonatelný odpor.No tak pouzij toto:
#define ever (;;) for ever { ... }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.