Die klassische LösungMathias hat geschrieben: Mo 15. Apr 2024, 19:15 Die haben ein Doppel not gemacht.Code: Alles auswählen
enabled = !!enabled; // make sure this is definitely either SDL_TRUE or SDL_FALSE.

Die klassische LösungMathias hat geschrieben: Mo 15. Apr 2024, 19:15 Die haben ein Doppel not gemacht.Code: Alles auswählen
enabled = !!enabled; // make sure this is definitely either SDL_TRUE or SDL_FALSE.
Nichts besonders, bei SQL musst du immer mit TRUE,FALSE,NIL rechnenMathias hat geschrieben: Mi 17. Apr 2024, 08:28 Es ist schon krass, der einfachste Daten Typ welcher nur True oder False haben kann, hat es voll in sich,
Als mit C99 Boolean als Datentyp eingeführt wurde konnten sie den Typen nicht bool nennen, weil ganz viele Bibliotheken ihren eigenen bool Typen definiert haben, sondern haben _bool eingeführt und dann stdbool.h enthält ein alias auf bool.BeniBela hat geschrieben: Di 16. Apr 2024, 14:49 Manchmal muss ich in C programmieren. Da habe vor Jahren ein C-Programm geschrieben und mir ein bool definiert. Nun musste ich das updaten, und eine Library verwenden, und dann stürzt es ab.
Da habe ich stundenlang untersucht, und dann gemerkt, dass mein bool, das bool aus dem Libraryheader überschreibt. Da hatte die struct dann die falsche Größe
Code: Alles auswählen
uses GL;
begin
if True then begin
WriteLn('io');
end;
if GL_TRUE then begin
WriteLn('error');
end;
end.
Code: Alles auswählen
// gcc main.c -o main
#include <stdio.h>
#include <stdbool.h>
int main(int argc, char **argv)
{
printf("bool: %ld\n", sizeof(bool)); // -> 1
}
Code: Alles auswählen
uses
ctypes;
begin
WriteLn('Boolean: ', sizeof(boolean)); // -> 1
WriteLn('cbool: ', sizeof(cbool)); // -> 4
end.
Und genau dieser hat 4 Byte.fliegermichl hat geschrieben: Do 13. Mär 2025, 18:37 Naja, wenn ich mir die Deklaration von cbool ansehe, dann steht da cbool = longbool
Ganz einfach: der meiste C Code nutzt typedef int bool oder analoges um einen Boolean-Wert dazustellen. Dass mehr auf einen standardisierten Booleantyp gegangen wird, ist erst seit vergleichsweise Kurzem der Fall. Demnach deckt cbool auch den häufigeren Fall für C-Code ab und wird aus Gründen der Rückwärtskompatibilität auch so bleiben.