OPERATOR PRZECINEK 51 a = (b=c) ? b : c; /* Jeśli b jest większe bądź równe c, to zwróć b. W przeciwnym wypadku zwróć c. */ lub zwracanie modułu liczby: a = a int main() { printf("sizeof(short ) = %d\n", sizeof(short )); printf("sizeof(int ) = %d\n", sizeof(int )); printf("sizeof(long ) = %d\n", sizeof(long )); printf("sizeof(float ) = %d\n", sizeof(float )); printf("sizeof(double) = %d\n", sizeof(double)); return 0; } Operator ten jest czÄsto wykorzystywany przy dynamicznej alokacji pamiÄci, co zostanie opisane w rozdziale poÅwiÄconym wskaźnikom. Pomimo, że w swej budowie operator sizeof bardzo przypomina funkcjÄ, to jednak niÄ
nie jest. Wynika to z trudnoÅci w implementacji takowej funkcji â jej specyï¬ka musiaÅaby odnosiÄ siÄ bezpoÅrednio do kompilatora. Ponadto jej argumentem musia- Åyby byÄ typy, a nie zmienne. W jÄzyku C nie jest możliwe przekazywanie typu jako argumentu. Ponadto czÄsto zdarza siÄ, że rozmiar zmiennej musi byÄ wiadomy jeszcze w czasie kompilacji â to ewidentnie wyklucza implementacjÄ sizeof() jako funkcji. Inne operatory Poza wyżej opisanymi operatorami istniejÄ
jeszcze: ⢠operator ââ opisany przy okazji opisywania tablic;
(…)
… ten jest często wykorzystywany przy dynamicznej alokacji pamięci, co
zostanie opisane w rozdziale poświęconym wskaźnikom.
Pomimo, że w swej budowie operator sizeof bardzo przypomina funkcję, to jednak
nią nie jest. Wynika to z trudności w implementacji takowej funkcji — jej specyfika
musiałaby odnosić się bezpośrednio do kompilatora. Ponadto jej argumentem musiałyby być typy, a nie zmienne. W języku C…
... zobacz całą notatkę
Komentarze użytkowników (0)