‟overcq”

Z bloga o OUX/C+

Stałe wbudowane

W różnych miejscach plików podsystemu OUX są zdefiniowane pewne stałe powszechnego użycia, a niektóre z nich nie mają przypisanej nazwy.

Jako “NULL” znanego z języka C lub “null” znanego z języka C++ dla wskaźnika należy używać stałej wartości 0.

Stałe boolean

W celu ustawienia wartości zmiennej typu B lub wartości pola bitowego należy przypisać wartość “no” lub “yes”. Stałe te reprezentują wartości odpowiednio: ”false” lub “true”, znane z języka C. Natomiast wartość “yes” musi wynosić 1, jak w języku C++, a nie “TRUE” z języka C, która może mieć dowolną wartość różną od 0.

W celu odczytania wartości typu B należy używać domyślnego rzutowania na wartość B czyli czytać bezpośrednio lub przez negację:

if( b ){}
if( !b ){}

Ujemne stałe wyliczeniowe

Wiele procedur wraca z wartością typu N lub I, dla których 0 jest poprawną wartością. Dla tych typów danych zostały określone stałe wyliczeniowe, których wartości są liczone od maksimum zakresu, więc zmniejszają tylko niewiele zakres wartości od góry, a dają możliwość sygnalizacji bez korzystania z osobnej zmiennej.

Taką stałą jest nie zdefiniowana przez nazwę wartość “empty” wynosząca ~0; czyli −1 po rzutowaniu do wartości ze znakiem, jednak należy używać tej pierwszej wartości. W celu ustawienia zmiennej wartości “empty” należy jej przypisać ~0. W celu odczytania wartości “empty” należy używać domyślnego rzutowania czyli czytać następująco dla wartości “empty” lub nie‐“empty”:

if( !~n ){} // ~0
if( ~n ){} // !~0

Takie sprawdzenie jest standardowym sprawdzeniem błędu procedury wracającej z wartością typu N lub I.

Inną stałą jest zdefiniowana przez nazwę wartość “E_mem_Q_file_S_eof” wynosząca ~1; czyli -2 po rzutowaniu do wartości ze znakiem. Zarówno w celu ustawienia jak i odczytania zmiennej tej wartości należy używać porównania z nazwą “E_mem_Q_file_S_eof”:

n = E_mem_Q_file_S_eof;
if( n == E_mem_Q_file_S_eof ){}
if( n != E_mem_Q_file_S_eof ){}

Pozostałe stałe

Zdefiniowane są też dwie stałe różnego typu reprezentujące tę samą daną – znak separatora nazw plików w danym systemie operacyjnym: