Stałe wbudowane
- Janusz Augustyński
- 27 kwi 2020
- 2 minut(y) czytania
Zaktualizowano: 28 kwi 2020
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
Comments