W każdym języku programowania istnieją typy danych. W przypadku Symbian C++ niewskazane jest używanie typów znanych z C++ (int, char, etc.) aczkolwiek istnieje taka możliwość. W dalszej części wyjaśnię dlaczego. Pisząc o typach danych muszę nadmienić, iż nomenklatura Symbiana nakazuje trzymania się pewnej konwencji nazewnictwa (co będzie tematem następnego wpisu). I tak, typy danych (łatwe do zapamiętania) zaczynają się od dużej litery T (od Type). Przechodząc do sedna, są to…

  • TInt8, TUInt8 – zmienna całkowita 8-bitowa oraz jej odpowiednik typu unsigned
    • TInt16, TUInt16 – analogicznie j.w., ale 16-bitowa
    • TInt32, TUint32 – j.w., ale 32-bitowa
    • TInt, TUInt – j.w., 32-bitowa
    • TInt64 – zmienna całkowita 64-bitowa, w praktyce przechowywana jako 2 zmienne 32-bitowe
    • TReal32 – zmienna zmiennoprzecinkowa o podwójnej precyzji 32-bitowa
    • TReal, TReal64 – j.w., ale 64-bitowa
    • TText8, TText16 – zmienne tekstowe (odpowiednikami w C++ są odpowiednio – unsigned char oraz unsigned short int)
    • TBool – zmienne booleanowskie
    • TAny – odpowiednik void z C++, najczęściej używany jako TAny *

W przypadku zmiennych boolean prawda oraz fałsz programowo są oznaczane odpowiednio jako ETrue oraz EFalse. Tutaj mała uwaga – w C++ wszystko co nie jest zerem uznawane jest za prawdę, natomiast w Symbian C++ ETrue odpowiada za wartość 1. Dlatego zamiast pisać:

TBool b = Funkcja();
if (b == ETrue) { ... }

należy porównywać

TBool b = Funkcja();
if (b) { ... }

Teraz wypada wyjaśnić dlaczego akurat takie typy a nie standardowe… Otóż wszyscy programiści C++ na pewno mają na uwadze różnice w rozmiarze typów zmiennych w przypadku różnych platform i/lub różnych kompilatorów. Z uwagi, że pisząc aplikacje na Symbian OS należy uwzględnić różne telefony (również kompilatory, środowiska), stosując typy zmiennych zaprezentowane w liście powyżej mamy pewność, iż zawsze będą takie jakie mają być. Jedynym odstępstwem od tej reguły jest zwracany typ void przez funkcje (w przypadku deklarowania wskaźników typu pustego, należy posługiwać się typem TAny).

Na tym zakończę część drugą, może informacji nowych dużo nie ma (w porównaniu z C++), ale są to fundamenty które trzeba zapamiętać.