Zdravím,
při hraní v MPLabu jsem si všiml zajímavé věci, kterou zatím ne a ne pochopit. Nastíním situaci, mám boolovskou hodnotu a funkci, která vrací boolovskou hodnotu. Nástin hlavičkového souboru tedy vypadá takto.
bool test;
bool t();
Zde je datový typ bool znám a je i zvýrazněn jako datový typ. Datový typ bit však v hlavičkovém souboru znám není. Pokud doplníme:
bit tt;
Kompilátor se nám ozve s hláškou Unable to resolve identifier bit. OK, smažme tedy zde nově přidaný řádek a přejděme k samotnému souboru s kódem.
Proměnnou typu bool test můžeme bez problému použít, ALE jakmile například chceme nadefinovat vně funkce jinou bool proměnnou, obdržíme od kompilátoru varování ve smyslu Unable to resolve identifier bool. Větší paradox však přichází při definici funkce t:
#include "header.h"
bool t()
{
return test;
}
Už při hlavičce funkce na nás IDE varovně křičí, že datový typ nezná, jak tedy dál? Pokud by byl návratovým typem bit, v c souboru to sice projde, avšak chybu bude hlásit v hlavičkovém souboru, ve kterém bit nezná.
Máte s tímto někdo nějakou zkušenost? Já vcelku už nevím, co si o tomto mám myslet a například funkce vracející bitovou (boolovou) hodnotu by se mi celkem hodily.
PS: nemám v plánu (respektive chtěl bych se vyhnout) konstrukcím typu, vracet 1 nebo 0 v unsigned charu, případně struktuře bit (bool) proměnných a podobným řešením.