Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: datovy typ bool  (Přečteno 3409 krát)

Merik

  • Návštěvník
  • Příspěvků: 39
datovy typ bool
« kdy: 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

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: datovy typ bool
« Odpověď #1 kdy: 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í ;)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Michal Poschl

  • Návštěvník
  • Příspěvků: 28
Re: datovy typ bool
« Odpověď #2 kdy: 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ý. :-)

Merik

  • Návštěvník
  • Příspěvků: 39
Re: datovy typ bool
« Odpověď #3 kdy: 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;
}

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: datovy typ bool
« Odpověď #4 kdy: 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 ::)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

pavolzetor

  • Host
Re: datovy typ bool
« Odpověď #5 kdy: 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);"
« Poslední změna: 30 Června 2008, 13:36:29 od Pavol Klačanský »

Martin - ViPEr*CZ*

Re: datovy typ bool
« Odpověď #6 kdy: 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
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Pavel Půlpán

Re: datovy typ bool
« Odpověď #7 kdy: 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.

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: datovy typ bool
« Odpověď #8 kdy: 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]
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

wam]Spider007

  • Host
Re: datovy typ bool
« Odpověď #9 kdy: 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.

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: datovy typ bool
« Odpověď #10 kdy: 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?
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

wam]Spider007

  • Host
Re: datovy typ bool
« Odpověď #11 kdy: 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 :(

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: datovy typ bool
« Odpověď #12 kdy: 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.
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

 

Provoz zaštiťuje spolek OpenAlt.