Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Merik 28 Června 2008, 18:29:05

Název: datovy typ bool
Přispěvatel: Merik 28 Června 2008, 18:29:05
takze kdyz sem psal kod v Cecku pod linuxem a pouzil sem datovy typ bool v programu nebo jako navratovy typ funkce tak me kompilator vyhodil ‘bool’ undeclared
tak prosim jestli by nekdo neporadil jakou knihovnu nebo balicek dodat aby to jelo
diky
Název: Re: datovy typ bool
Přispěvatel: Firzen 28 Června 2008, 19:41:22
To nebude balíčkem, ani knihovnou - to bude chybou v kódu  ::) Pokud můžete, dejte sem kód a určitě vám někdo(třeba i já) poradí ;)
Název: Re: datovy typ bool
Přispěvatel: Michal Poschl 28 Června 2008, 21:57:01
Souhlasím,s nejvyšší pravděpodobností to bude jen chybka v kódu. Ale jestli náhodou nepíšeš v ANSI C. Tuším, že tam snad není datový typ bool definovaný. :-)
Název: Re: datovy typ bool
Přispěvatel: Merik 29 Června 2008, 09:29:16
#include <stdio.h>
#include <SDL.h>

#define SDL_SUBSYSTEMS SDL_INIT_VIDEO
#define WIN_FLAGS SDL_ANYFORMAT|SDL_RESIZABLE
#define WIN_WIDTH 640
#define WIN_HEIGHT 480
#define WIN_BPP 0
#define WIN_TITLE "Program"

SDL_Surface *g_screen;

bool Init()
{
   
   if(SDL_Init(SDL_SUBSYSTEMS) == -1)
   {
      fprintf(stderr, "Unable to initialize SDL: %s\n",
            SDL_GetError());
      return false;
   }

   
   g_screen = SDL_SetVideoMode(WIN_WIDTH, WIN_HEIGHT, WIN_BPP, WIN_FLAGS);

   if(g_screen == NULL)
   {
      fprintf(stderr, "Unable to set %dx%d video: %s\n",
            WIN_WIDTH, WIN_HEIGHT, SDL_GetError());
      return false;
   }

   
   SDL_WM_SetCaption(WIN_TITLE, NULL);

   return true;
}



void Destroy()
{
   SDL_Quit();
}


bool ProcessEvent()
{
   SDL_Event event;

   while(SDL_PollEvent(&event))
   {
      switch(event.type)
      {
         case SDL_KEYDOWN:
            switch(event.key.keysym.sym)
            {
               case SDLK_ESCAPE:
                  return false;
                  break;

               default:
                  break;
            }
            break;

         case SDL_QUIT:
            return false;
            break;

         default:
            break;
      }
   }

   return true;
}



int main(int argc, char *argv[])
{
   printf(WIN_TITLE);
   

   
   if(!Init())
   {
      Destroy();
      return 1;
   }

   
   bool done = false;
   while(!done)
   {
      done = !ProcessEvent();
   
   }

   Destroy();
   return 0;
}
Název: Re: datovy typ bool
Přispěvatel: Firzen 29 Června 2008, 13:07:55
No já teda nevim, ale myslím že by bylo jednodušší nahradit ten bool za obyčejný int a vystačit si s true=1 a false=0; to bude fungovat 100%.. někdy je lepší chybu přeskočit, než se u ní zaseknout ::)
Název: Re: datovy typ bool
Přispěvatel: pavolzetor 29 Června 2008, 19:51:54
No já teda nevim, ale myslím že by bylo jednodušší nahradit ten bool za obyčejný int a vystačit si s true=1 a false=0; to bude fungovat 100%.. někdy je lepší chybu přeskočit, než se u ní zaseknout ::)

ale zase zere to viac RAM a potom sa cudujem preco su programy tak narocne na RAM, treba ladit a setrit, bool v C neni definovany musis si ho nadefinovat takto (mam to z knihy  ;D): "enum boolean (false = 0, true = 1);"
Název: Re: datovy typ bool
Přispěvatel: Martin - ViPEr*CZ* 30 Června 2008, 07:16:53
No já teda nevim, ale myslím že by bylo jednodušší nahradit ten bool za obyčejný int a vystačit si s true=1 a false=0; to bude fungovat 100%.. někdy je lepší chybu přeskočit, než se u ní zaseknout ::)

ale zase zere to viac RAM a potom sa cudujem preco su programy tak narocne na RAM, treba ladit a setrit, bool v C neni definovany musis si ho nadefinovat takto (mam to z knihy :-D): "enum boolean (false = 0, true = 1);"

Tak tak a nebo použít c++ kompilátor na todle :D
Název: Re: datovy typ bool
Přispěvatel: Pavel Půlpán 30 Června 2008, 09:26:04
Implementace booleových konstant byla zařazena až do specifikace ISO-C99. A to přesněji do hlavičkového souboru stdbool.h (http://www.opengroup.org/onlinepubs/000095399/basedefs/stdbool.h.html).
Název: Re: datovy typ bool
Přispěvatel: Firzen 30 Června 2008, 09:58:19
No já teda nevim, ale myslím že by bylo jednodušší nahradit ten bool za obyčejný int a vystačit si s true=1 a false=0; to bude fungovat 100%.. někdy je lepší chybu přeskočit, než se u ní zaseknout ::)

ale zase zere to viac RAM a potom sa cudujem preco su programy tak narocne na RAM, treba ladit a setrit, bool v C neni definovany musis si ho nadefinovat takto (mam to z knihy :-D): "enum boolean (false = 0, true = 1);"

Myslím, že dnešní programy potřebují více ram spíše kvůli lolkárnám, jako je tahle:
Kód: [Vybrat]
char* pole=new char[3500000];

ifstream fin(soubor);
char znak;
int i=0;
while(fin.get(znak))
{
pole[i]=znak;
i++;
}
fin.close();

if(control>215)
{
delete [] pole;    // uvolnění paměti
main();
}
else
{
cout << "bleble";      // tady na to někdo zapomněl :-o
zapis(pole, control);  //
}
[code]
[/code]
Název: Re: datovy typ bool
Přispěvatel: wam]Spider007 30 Června 2008, 12:47:28
tak toto snad uz asi ani nikto takto nerobi, nacitavanie po jednom znaku.

co sa tyka toho bool, tak sa da povedat o akej takej usetrenej pamati. No pravda je taka, ze sa neda adresovat velkost jedneho bitu, a teda pre bool sa vzdy adresuje 8 bitov = 1 bajt. Pre int je to tusim 4 bajty, ale ked sa pouzije unsingned short, tak je to este menej a vtedy uz rozdiel pamate je minimalny.
Název: Re: datovy typ bool
Přispěvatel: Firzen 30 Června 2008, 12:54:24
Citace
tak toto snad uz asi ani nikto takto nerobi, nacitavanie po jednom znaku.
Já to tak dělám ;D Nikde jsem ještě nic jiného nenašel(je to na builder.cz, v knížkách i na netu..). Jak to děláte vy?
Název: Re: datovy typ bool
Přispěvatel: wam]Spider007 30 Června 2008, 14:19:39
Citace
tak toto snad uz asi ani nikto takto nerobi, nacitavanie po jednom znaku.
Já to tak dělám ;D Nikde jsem ještě nic jiného nenašel(je to na builder.cz, v knížkách i na netu..). Jak to děláte vy?

ja uz nijak :D v C++ som uz dlho nerobil, ale viem, ze v skole sme na to pouzivali trochu inu metodu. Zacinali sme tiez nacitavanim po znaku a potom nas profak naucil jednoduchsi sposob. Syntax si ale naozaj nespomeniem :(
Název: Re: datovy typ bool
Přispěvatel: Firzen 30 Června 2008, 15:09:03
Citace
tak toto snad uz asi ani nikto takto nerobi, nacitavanie po jednom znaku.
Já to tak dělám ;D Nikde jsem ještě nic jiného nenašel(je to na builder.cz, v knížkách i na netu..). Jak to děláte vy?

ja uz nijak :D v C++ som uz dlho nerobil, ale viem, ze v skole sme na to pouzivali trochu inu metodu. Zacinali sme tiez nacitavanim po znaku a potom nas profak naucil jednoduchsi sposob. Syntax si ale naozaj nespomeniem :(
Každopádně jste měli rozumnýho profesora.. naše učitelka se zmohla jen na výuku s OO a Office.. a taky na nakreslení obrázku v Gimpu pod Suse linuxem :'(  Zatím s námi vůbec neprogramovala.