Literał złożony w języku C - tak brzmi temat niniejszego artykułu 🚀! Dowiesz się do czego służy kolejny "wynalazek" standardu C99, jakich dotyczy struktur danych i jak wygląda w kodzie źródłowym 🔔. Zapraszam 👍!

LITERAŁ ZŁOŻONY W JĘZYKU C. "WPLATANIE" OBIEKTU BEZPOŚREDNIO

Czytelniku mój, jeżeli kiedykolwiek ujrzysz termin "literał złożony" (ang. compound literal), to to jest zdefiniowanie obiektu anonimowego tj. bez nazwy ℹ️. Jeszcze inaczej, oznacza to, że nie jest przydzielany do żadnego miejsca w pamięci. Ostatecznie może być przypisany do zmiennej, jednak częściej znajduje swoje miejsce jako sztywno "wszczepiony" do funkcji jako taka "lambda" (dokładnie jak wyrażenie lambda, że występuje tylko w tym jednym przypadku). To jest jego podstawowe zastosowanie ☑️.

Literał złożony w języku C dotyczy wyłącznie następujących struktur danych 👇:

  1. tablica,
  2. struktura,
  3. unia.

Dalszą część materiału będę prezentował na tablicach, jako trzecia już "forma" ich występowania (po podstawowej i wskaźnikowej postaci).

ZAPIS W KODZIE

Literał złożony przyjmuje postać w takim stylu 👇:

(int [3]){3, 11, 25};

Typ danych w nawiasie (czyli rzutowanie na wskazany typ) i wartości w nawiasach klamrowych 🔥. Bardzo nietypowo, jak na dzisiejsze zapisy 🙂.

Wpisanie takiego literału w pusty wiersz niczego nie wniesie 😶 - to tak, jak byśmy wstawili sam średnik. Zatem, do czego może się przydać? Dwa scenariusze 2️⃣!

WSTAWIENIE W MIEJSCE PARAMETRU FUNKCJI

Literał złożony możemy podstawić pod funkcję oczekującą parametru typu tablicowego (bądź struktury lub unii) 👇:

void printNumbers(int[], int);

i w ten sposób nadać jej wpływ na przebieg programu:

printNumbers((int [3]){3, 11, 25}, 3);

To będzie istniało do momentu zakończenia wykonywania funkcji ✅.

PRZYPISANIE DO ZMIENNEJ

Druga możliwość, to przypisanie takiej konstrukcji zmiennej - w przypadku tablic, może to być wskaźnik 👇:

int *numbers = (int [3]){3, 11, 25};

Wtedy literał złożony zostanie utrwalony i "nie zginie" 💀. A potem możemy z niego korzystać tak, jak z tablicy utworzonej "normalnie":

int* numbers = (int [3]){3, 11, 25};

numbers[0] = 5;
	
printNumbers(numbers, 3);

Biorąc pod uwagę inne możliwości tworzenia tablic jakie oferuje nam język, możesz myśleć, że tu jest więcej komplikacji niż pożytku, dlatego traktuj ten materiał raczej jako "smaczek" 👅.

Literał złożony w języku C

Literał złożony w języku C to inaczej, obiekt anonimowy. Może być zastosowany jako struktura danych występująca tylko w jednym konkretnym wywołaniu funkcji bądź przypisany do zmiennej.


Koniec, kropka ⚫. To wszystkie istotne informacje jakie można przekazać na ten temat 📖.

PODOBNE ARTYKUŁY