Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
19.05.2002, 16:18
n0Brain



hi leute!

ich hab da mal eine frage: gibts in c (REINEN C) eine var die NUR true oder false speichern kann?

thx schon mal im vorraus

--

zum Seitenanfang zum Seitenende Profil || Suche
001
19.05.2002, 16:26
Retro



ja, natürlich... bitvarialben gibt es in jeder sprache...
Quellcode:[color="blue"]bool[/color] MeineVar

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
002
19.05.2002, 16:32
n0Brain



hmm... bei mit funzt aba bool net! kanns sein, dass das am compiler liegt? ich verwend nämlich dev-c++. nicht die ms-kage!

--

zum Seitenanfang zum Seitenende Profil || Suche
003
19.05.2002, 16:40
Retro



bool ist keinesfalls eine eigenheit von microsoft... _du_ machst was falsch. c/c++ ist und bleibt c/c++ ob nu msvc++ oder mingw oder bcb...

Zitat:
nicht die ms-kage!
da spricht mal wieder jmd der ahnung hat...

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 19.05.2002 um 16:40 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
19.05.2002, 16:44
n0Brain



Quellcode:
#include <stdio.h>

int main(int argc, char *argv[])
{
  bool a=true;

  if (a)
  {
     printf("hallo\n");
  }

  return 0;
}

der müsst "hallo" ausgeben. tut er aba net! der sagt ma nur an compilerfehler, dass er bool net kennt.

--


Dieser Beitrag wurde am 19.05.2002 um 16:45 von n0Brain bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
19.05.2002, 16:46
GameBase



Vielleicht eine Header datei vergessen?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
19.05.2002, 16:48
n0Brain



hmm....könntest recht habm...wie heißt die dann?

--

zum Seitenanfang zum Seitenende Profil || Suche
007
19.05.2002, 16:49
KillerDoc



http://www.eskimo.com/~scs/C-faq/q9.1.html

gibta nit :)

--

lazy sunday afternooon
i got no mind to worry
i close my eyes and drift away....

zum Seitenanfang zum Seitenende Profil || Suche
008
19.05.2002, 16:51
Retro



wtf?! SDCC kennt ja schon bool...

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
009
19.05.2002, 16:53
n0Brain



folgendes steht auf der page von killerdoc:
"C does not provide a standard Boolean type"->es gibt also keine direkte boolesche variable nur int, die man als solche verwenden kann.

so versteh ich das zumindest.

/edit:

also hab ich recht, das nix mit "bool" geht :P

wer is jetzt der der sich net auskennt retro?

--


Dieser Beitrag wurde am 19.05.2002 um 16:59 von n0Brain bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
19.05.2002, 17:06
[RMen]OneStone



Quellcode:#include <stdio.h>
#include <stdlib.h>

#define BOOL_PACK char
#define GET_BOOL(a, b) (a & 0x01 << (b - 1))
#define SET_BOOL(a, b) (a = a | 0x01 << (b - 1))
#define DEL_BOOL(a, b) (a = a &  ~ (0x01 << (b - 1)))
void main()
{
char i;
BOOL_PACK bpMyPack;
memset(&bpMyPack, 0, 8);

SET_BOOL(bpMyPack, 1);
SET_BOOL(bpMyPack, 3);
SET_BOOL(bpMyPack, 8);
DEL_BOOL(bpMyPack, 1);

for(i = 1; i <= 8; i++)
{
   if(GET_BOOL(bpMyPack, i))
    printf("true\n");
   else
    printf("false\n");
}
}

Ausgabe:
false
false
true
false
false
false
false
true

Mein gerade erfundener BOOL_PACK Code für C (wichtig sind die Defines) ist Public Domain!

GET_BOOL (boolpack, index) - get value from bool index from the Boolean Pack boolpack
SET_BOOL (boolpack, index) - set the index's bool's value to true
DEL_BOOL (boolpack, index) - set the index's bool's value to false
index can be any value from 1 to 8, cause a BOOL_PACK defined has 8 bits - can pack 8 bools.

Wenn man das #define BOOL_PACK char in #define BOOL_PACK int ändert, kann man logischerweise 32 bools packen, index geht also von 1 - 32

Warum man BOOL_PACKs verwenden sollte? Damit nicht 31 bit verlorengehen, wenn man #define bool int benutzt!

Krieg ich jetzt nen Kecks?

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/


Dieser Beitrag wurde am 19.05.2002 um 17:16 von [RMen]OneStone bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
19.05.2002, 23:57
Tron



@retro: bool gehoert nicht zum ansi-c standard, bool gibt es erst seit c99 und c++

@einsteinchen: spam nicht in andere threads. und NEIN, du bekommst KEINEN keks, schau in deinem thread warum!

<edit>
@n0brain: verwende einfach int als bool-ersatz, falls dein compiler kein bool unterstuetzt
alle werte != 0 werden als wahr interpretiert, == 0 wird als false interpretiert
</edit>

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 19.05.2002 um 23:59 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
20.05.2002, 00:44
[RMen]OneStone



Ich spamme nicht in andern Threads, ich hab' das hier zuerst geschrieben, und es bezieht sich auch auf diesen Thread. Ich hab' das nochmal neu geposted, damit es auch andere lesen können!

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
013
20.05.2002, 01:26
Kriz



In reinem C gibt es keine boole'schen Variablen...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
014
20.05.2002, 12:53
Mazze



Ist doch egal!
int dürfte doch eh nicht langsamer sein als bool, oder?
Ein bisschen mehr Platz braucht es halt, aber das reißts nicht raus!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
015
20.05.2002, 14:47
snoopdog



doch wenn man speicherplatz mangel hat, aber heutzutage gibt es das ja auf den seit den 5/86 Systemen nicht mehr...

--

Visit our 500er Gamer Lan
@ www.evil-lanparty.de or
@ www.evil-havoc.com
Visit the HaVoc Lanparty Community
@ www.havoc-lanparty.com

zum Seitenanfang zum Seitenende Profil || Suche
016
20.05.2002, 15:49
Another1



bool is ne definitionsfrage. In C (wie schon gesagt) gibt es kein standard-bool. Meistens ist ein bool aber 8bit groß (nen char). Gibt aber auch viele die int als bool nehmen, is zwar verschwendung, naja egal. Nen 1bit bool gibt es (afaik) nicht (kenn nunja auch nit alle programmiersprachen, vielleicht gibts da einige mit besonderheiten), da 1bit keine (direkt) adressierbare größe is.

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
017
20.05.2002, 16:23
Onkel Dittmeyer



Also ehrlich gesagt kann ich (auch wenns mir schwer fällt =) auf die 7 bit verzichten in einer Zeit wo >256 MB RAM standard sind. *g* Das macht imho nur Sinn wenn man was mit Assembler macht.

--


Dieser Beitrag wurde am 20.05.2002 um 16:24 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
018
20.05.2002, 20:09
Prefect



Wenn du pro Tile in einer Tilemap ein Bool benötigst summieren sich die 7 Bit dennoch zu einer ordentlichen Summe auf...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
019
21.05.2002, 20:24
n0Brain



thx an alle!

eigentlich habe ich nur mit einem freund diskutiert (wie immer) und er hat gemeint, dass es boolesche variablen in uralt-c gibt. darauf hab ich mich 15 min mit dem scheiß compiler herumgespielt, ohne erfolg. wenigstns bekomm ich jetzt hoffentlich meine 2 € von ihm, um die wir gewettet habm!

dass man int-vars als boolesche variablen benutzen kann ist mir auch nicht neu. ich mach das immer so (bis sich mein freund unbedingt mal den code ansehn hat müssn...

aba egal

THX A LOT

--

zum Seitenanfang zum Seitenende Profil || Suche
020
21.05.2002, 20:45
Kriz



Eigentlich wird (zumindest in VC++) für bool immer signed int genommen, also je nach CPU 16 oder 32 Bit. Das is zwar für nur eine Bitstelle etwas viel, aber bei Castings von bool nach anderen Datentypen wird im Prinzip immer signed int nach dem Zieldatentyp gecastet. Dagegen knurrt der Compiler (VC++) immer rum, wenn man int nach bool casten will.

Is halt so ne Situation nach dem Motto: Früher war es so geregelt, daß jeder seine Alte vögelt, heute ist es voll verzwickt, weil alles durcheinander f....

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
021
21.05.2002, 21:31
Retro



Wie währe es mit ner Art BCD-Code um zig Bools in einem Integer unterzubringen?!

Die jeweiligen Werte werden zusammengerechnet, so kann man wirklich ne ganze Menge Bools in einer Integerzahl unterbringen bis ihr Limit erreicht ist... wenn intresse besteht schreib ich ne Fumltion (?)!

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
022
21.05.2002, 21:35
KillerDoc



Kriz:

Bist du dir sicher daß bool im VC++ ein int ist ?

Als ich das mal probiert hab mit sizeof(bool) bin ich auf ein byte gekommen mit VS 6..
Wenns ein int wäre müssts ja im grunde 4 bzw 2 Byte groß sein...

Retro:
Genau das macht OneStones code ja im grunde :)

--

lazy sunday afternooon
i got no mind to worry
i close my eyes and drift away....

zum Seitenanfang zum Seitenende Profil || Suche
023
21.05.2002, 21:36
Retro



Jep, aber er machts ja mit nem böhhhsen Char =)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
024
21.05.2002, 21:55
Onkel Dittmeyer



Kommt wohl drauf an wieviele Bits man haben will =)

--

zum Seitenanfang zum Seitenende Profil || Suche