Christoph Zurnieden: While in C?

Beitrag lesen

Hi,

» »» Kann man in c while schleifen nur nutzen wenn man bis 0 runterzählen will oder geht das auch mit boolean werten??
»»

Es gibt in C keine Bool'sche Datentypen.

Aber selbstverständlich gibt es in C einen boolschen Datentypen. Aus ISO/IEC 9899:

7.16 Boolean type and values <stdbool.h>
1 The header <stdbool.h> defines four macros.
2 The macro bool expands to _Bool.
3 The remaining three macros are suitable for use in #if preprocessing directives. They are
true
which expands to the integer constant 1,
false
which expands to the integer constant 0, and
__bool_true_false_are_defined
which expands to the decimal constant 1.

Aufgrund des folgenden Absatzes:

4 Notwithstanding the provisions of 7.1.3, a program is permitted to undefine and perhaps then redefine the macros bool, true,and false.

folgt, das das hier ...

Alles, was nicht 0 ist, wird als 'true' gewertet (in if(), while(), etc.), alles, was 0 ist,

wird als 'false' gewertet.

... korrekt ist, jedoch das Beispiel, auch wenn es nicht wirklich falsch ist doch zumindest Kopfschmerzen aufgrund von Unvollständigkeit verursacht. Bei Code für die Produktion sollten die Werte von false und true an einer Stelle geprüft und/oder definiert werden, auf die man exklusiven Einfluß hat.

(ok, das Beispiel ist doof, weil man an dieser Stelle besser break; verwendet hätte,

Warum, in Edsger Dijkstras Namen? >;->

Weiterführende Lektüre http://www2.informatik.uni-wuerzburg.de/dclc-faq/kap8.html

Ja, auch die neueste Version hat das noch drin, obwohl bereits seit 6 Jahren veraltet. Man könnte fast meinen, das Steve das mit Absicht machte ;-)

so short

Christoph Zurnieden