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
		
			
			- 
				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
			 
			
			- 
				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í ;)
			
 
			
			- 
				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ý. :-)
			
 
			
			- 
				#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;
}
			 
			
			- 
				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 ::)
			
 
			
			- 
				
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);"
			 
			
			- 
				
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
			 
			
			- 
				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).
			
 
			
			- 
				
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:
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]
			 
			
			- 
				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.
			 
			
			- 
				
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?
			 
			
			- 
				
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 :(
			 
			
			- 
				
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.