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:
- • “E_mem_Q_file_S_filename_separator” będącą wartością typu C
- • “E_mem_Q_file_S_filename_separator_s” będąca wartością typu Pc