Wstep do programowania 1
Transkrypt
Wstep do programowania 1
Wstep ˛ do programowania 1 Wstep ˛ do programowania 1 Bożena Woźna-Szcześniak [email protected] Jan Długosz University, Poland Wykład 1 Wstep ˛ do programowania 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświecony ˛ jezykowi ˛ C i jego celem jest nauczenie projektowania i psania programów w tym jezyku. ˛ Zalecana Literatura ◮ Kernighan Brian W., Ritchie Dennis M. Jezyk ˛ ANSI C. Wydawnictwa Naukowo-Techniczne. Warszawa, 2004 i późniejsze. ◮ Stephen Prata. Jezyk ˛ C. Szkoła Programowania. Wydanie V. Wydawnictwo Helion. 2006 i poźniejsze. Wstep ˛ do programowania 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświecony ˛ jezykowi ˛ C i jego celem jest nauczenie projektowania i psania programów w tym jezyku. ˛ Zalecana Literatura ◮ Kernighan Brian W., Ritchie Dennis M. Jezyk ˛ ANSI C. Wydawnictwa Naukowo-Techniczne. Warszawa, 2004 i późniejsze. ◮ Stephen Prata. Jezyk ˛ C. Szkoła Programowania. Wydanie V. Wydawnictwo Helion. 2006 i poźniejsze. Wstep ˛ do programowania 1 Wprowadzenie Plan ◮ Wprowadzenie do C ◮ Pisanie programów w C ◮ Nasz pierwszy program - podstawy Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Jezyk ˛ C został zaprojektowany przez Dennisa Ritchie’ego w laboratoriach AT&T Bell na poczatku ˛ lat 70-tych XX wieku. ◮ Poprzednikiem jezyka ˛ C był interpretowany jezyk ˛ B, który Ritchie rozwinał˛ właśnie w jezyk ˛ C. ◮ Pierwszy okres rozwoju jezyka ˛ to lata 1969-1973. ◮ W roku 1973 w jezyku ˛ C udało sie˛ zaimplementować jadro ˛ (ang. kernel) systemu operacyjnego Unix. ◮ W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentacje˛ jezyka: ˛ The C Programming Language (wydanie polskie, Jezyk ˛ ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Jezyk ˛ C został zaprojektowany przez Dennisa Ritchie’ego w laboratoriach AT&T Bell na poczatku ˛ lat 70-tych XX wieku. ◮ Poprzednikiem jezyka ˛ C był interpretowany jezyk ˛ B, który Ritchie rozwinał˛ właśnie w jezyk ˛ C. ◮ Pierwszy okres rozwoju jezyka ˛ to lata 1969-1973. ◮ W roku 1973 w jezyku ˛ C udało sie˛ zaimplementować jadro ˛ (ang. kernel) systemu operacyjnego Unix. ◮ W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentacje˛ jezyka: ˛ The C Programming Language (wydanie polskie, Jezyk ˛ ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Jezyk ˛ C został zaprojektowany przez Dennisa Ritchie’ego w laboratoriach AT&T Bell na poczatku ˛ lat 70-tych XX wieku. ◮ Poprzednikiem jezyka ˛ C był interpretowany jezyk ˛ B, który Ritchie rozwinał˛ właśnie w jezyk ˛ C. ◮ Pierwszy okres rozwoju jezyka ˛ to lata 1969-1973. ◮ W roku 1973 w jezyku ˛ C udało sie˛ zaimplementować jadro ˛ (ang. kernel) systemu operacyjnego Unix. ◮ W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentacje˛ jezyka: ˛ The C Programming Language (wydanie polskie, Jezyk ˛ ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Jezyk ˛ C został zaprojektowany przez Dennisa Ritchie’ego w laboratoriach AT&T Bell na poczatku ˛ lat 70-tych XX wieku. ◮ Poprzednikiem jezyka ˛ C był interpretowany jezyk ˛ B, który Ritchie rozwinał˛ właśnie w jezyk ˛ C. ◮ Pierwszy okres rozwoju jezyka ˛ to lata 1969-1973. ◮ W roku 1973 w jezyku ˛ C udało sie˛ zaimplementować jadro ˛ (ang. kernel) systemu operacyjnego Unix. ◮ W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentacje˛ jezyka: ˛ The C Programming Language (wydanie polskie, Jezyk ˛ ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Jezyk ˛ C został zaprojektowany przez Dennisa Ritchie’ego w laboratoriach AT&T Bell na poczatku ˛ lat 70-tych XX wieku. ◮ Poprzednikiem jezyka ˛ C był interpretowany jezyk ˛ B, który Ritchie rozwinał˛ właśnie w jezyk ˛ C. ◮ Pierwszy okres rozwoju jezyka ˛ to lata 1969-1973. ◮ W roku 1973 w jezyku ˛ C udało sie˛ zaimplementować jadro ˛ (ang. kernel) systemu operacyjnego Unix. ◮ W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentacje˛ jezyka: ˛ The C Programming Language (wydanie polskie, Jezyk ˛ ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Wersja jezyka ˛ C opisana w The C Programming Language cz˛esto nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja˛ od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. ◮ W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. ◮ W roku 1999 standard C90 został zmodyfikowany i nazwany C99. ◮ W roku 2007 ogłoszono prace˛ nad nowym standardem C1X. ◮ Na wykładzie z programowania prodeduralnego i laboratoriach bedziemy ˛ używać standardu C89/C99. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Wersja jezyka ˛ C opisana w The C Programming Language cz˛esto nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja˛ od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. ◮ W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. ◮ W roku 1999 standard C90 został zmodyfikowany i nazwany C99. ◮ W roku 2007 ogłoszono prace˛ nad nowym standardem C1X. ◮ Na wykładzie z programowania prodeduralnego i laboratoriach bedziemy ˛ używać standardu C89/C99. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Wersja jezyka ˛ C opisana w The C Programming Language cz˛esto nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja˛ od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. ◮ W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. ◮ W roku 1999 standard C90 został zmodyfikowany i nazwany C99. ◮ W roku 2007 ogłoszono prace˛ nad nowym standardem C1X. ◮ Na wykładzie z programowania prodeduralnego i laboratoriach bedziemy ˛ używać standardu C89/C99. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Wersja jezyka ˛ C opisana w The C Programming Language cz˛esto nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja˛ od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. ◮ W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. ◮ W roku 1999 standard C90 został zmodyfikowany i nazwany C99. ◮ W roku 2007 ogłoszono prace˛ nad nowym standardem C1X. ◮ Na wykładzie z programowania prodeduralnego i laboratoriach bedziemy ˛ używać standardu C89/C99. Wstep ˛ do programowania 1 Wprowadzenie do C Rozwój jezyka ˛ C ◮ Wersja jezyka ˛ C opisana w The C Programming Language cz˛esto nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja˛ od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. ◮ W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. ◮ W roku 1999 standard C90 został zmodyfikowany i nazwany C99. ◮ W roku 2007 ogłoszono prace˛ nad nowym standardem C1X. ◮ Na wykładzie z programowania prodeduralnego i laboratoriach bedziemy ˛ używać standardu C89/C99. Wstep ˛ do programowania 1 Wprowadzenie do C Gdzie jest stosowany jezyk ˛ C? ◮ C stał sie˛ popularny poza Laboratoriami Bella (gdzie powstał) po 1980 roku i stał sie˛ dominujacym ˛ jezykiem ˛ do programowania: ◮ ◮ ◮ ◮ ◮ ◮ systemów operacyjnych z rodziny Linux. mikrokontrolerów: samochody, samolotach, urzadzeniach ˛ kuchennych, itp. systemów wbudowanych: telefony komórkowe, ipod-y, itp. procesorów sygnałowych (ang. digital signal processor DSP), czyli procesorów do cyfrowej obróbki sygnałów: systemy telewizji cyforowej, odtwarzacze audio, itp. ... wszedzie ˛ tam, gdzie zależy nam na pisaniu szybkich i niskopoziomowych programów. Na bazie jezyka ˛ C w latach osiemdziesiatych ˛ Bjarne Stroustrup stworzył jezyk ˛ C++, który wprowadza możliwość programowania obiektowego. Wstep ˛ do programowania 1 Wprowadzenie do C Gdzie jest stosowany jezyk ˛ C? ◮ C stał sie˛ popularny poza Laboratoriami Bella (gdzie powstał) po 1980 roku i stał sie˛ dominujacym ˛ jezykiem ˛ do programowania: ◮ ◮ ◮ ◮ ◮ ◮ systemów operacyjnych z rodziny Linux. mikrokontrolerów: samochody, samolotach, urzadzeniach ˛ kuchennych, itp. systemów wbudowanych: telefony komórkowe, ipod-y, itp. procesorów sygnałowych (ang. digital signal processor DSP), czyli procesorów do cyfrowej obróbki sygnałów: systemy telewizji cyforowej, odtwarzacze audio, itp. ... wszedzie ˛ tam, gdzie zależy nam na pisaniu szybkich i niskopoziomowych programów. Na bazie jezyka ˛ C w latach osiemdziesiatych ˛ Bjarne Stroustrup stworzył jezyk ˛ C++, który wprowadza możliwość programowania obiektowego. Wstep ˛ do programowania 1 Wprowadzenie do C Gdzie jest stosowany jezyk ˛ C? ◮ C stał sie˛ popularny poza Laboratoriami Bella (gdzie powstał) po 1980 roku i stał sie˛ dominujacym ˛ jezykiem ˛ do programowania: ◮ ◮ ◮ ◮ ◮ ◮ systemów operacyjnych z rodziny Linux. mikrokontrolerów: samochody, samolotach, urzadzeniach ˛ kuchennych, itp. systemów wbudowanych: telefony komórkowe, ipod-y, itp. procesorów sygnałowych (ang. digital signal processor DSP), czyli procesorów do cyfrowej obróbki sygnałów: systemy telewizji cyforowej, odtwarzacze audio, itp. ... wszedzie ˛ tam, gdzie zależy nam na pisaniu szybkich i niskopoziomowych programów. Na bazie jezyka ˛ C w latach osiemdziesiatych ˛ Bjarne Stroustrup stworzył jezyk ˛ C++, który wprowadza możliwość programowania obiektowego. Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Niewielka liczba słów kluczowych. auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Niewielka liczba słów kluczowych. auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Możliwość definiowania złożonych struktur danych: struktury, unie. ◮ Jawne stosowanie wskaźników - zarzadzanie ˛ pamieci ˛ a˛ i tablicami. ◮ Kompilacja do kodu natywnego (ang. native code), czyli kodu pracujacego ˛ z danym procesorem (np. Intel x86) i zbiorem jego instrukcji. ◮ Współpraca z macro preprocessor-em: m.in. obsługa dyrektywy #include, #ifndef, #define, #endif, itp. ◮ Szeroka gama bibliotek standardowych. Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Możliwość definiowania złożonych struktur danych: struktury, unie. ◮ Jawne stosowanie wskaźników - zarzadzanie ˛ pamieci ˛ a˛ i tablicami. ◮ Kompilacja do kodu natywnego (ang. native code), czyli kodu pracujacego ˛ z danym procesorem (np. Intel x86) i zbiorem jego instrukcji. ◮ Współpraca z macro preprocessor-em: m.in. obsługa dyrektywy #include, #ifndef, #define, #endif, itp. ◮ Szeroka gama bibliotek standardowych. Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Możliwość definiowania złożonych struktur danych: struktury, unie. ◮ Jawne stosowanie wskaźników - zarzadzanie ˛ pamieci ˛ a˛ i tablicami. ◮ Kompilacja do kodu natywnego (ang. native code), czyli kodu pracujacego ˛ z danym procesorem (np. Intel x86) i zbiorem jego instrukcji. ◮ Współpraca z macro preprocessor-em: m.in. obsługa dyrektywy #include, #ifndef, #define, #endif, itp. ◮ Szeroka gama bibliotek standardowych. Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Możliwość definiowania złożonych struktur danych: struktury, unie. ◮ Jawne stosowanie wskaźników - zarzadzanie ˛ pamieci ˛ a˛ i tablicami. ◮ Kompilacja do kodu natywnego (ang. native code), czyli kodu pracujacego ˛ z danym procesorem (np. Intel x86) i zbiorem jego instrukcji. ◮ Współpraca z macro preprocessor-em: m.in. obsługa dyrektywy #include, #ifndef, #define, #endif, itp. ◮ Szeroka gama bibliotek standardowych. Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C ◮ Możliwość definiowania złożonych struktur danych: struktury, unie. ◮ Jawne stosowanie wskaźników - zarzadzanie ˛ pamieci ˛ a˛ i tablicami. ◮ Kompilacja do kodu natywnego (ang. native code), czyli kodu pracujacego ˛ z danym procesorem (np. Intel x86) i zbiorem jego instrukcji. ◮ Współpraca z macro preprocessor-em: m.in. obsługa dyrektywy #include, #ifndef, #define, #endif, itp. ◮ Szeroka gama bibliotek standardowych. Wstep ˛ do programowania 1 Wprowadzenie do C Standardowe zbiory nagłówkowe ◮ ◮ ◮ ◮ ◮ ◮ ◮ ◮ ◮ ◮ stdio.h - funkcje standardowego wejścia/wyjścia, obsługa plików stdlib.h - najbardziej podstawowe funkcje, np. do zarzadzania ˛ pamieci ˛ a˛ ctype.h - klasyfikowanie znaków. math.h - funkcje matematyczne string.h - funkcje do obsługi łańcuchów znaków limits.h/float.h - właściwości typów całkowitych/zmiennoprzecinkowych zależne od implementacji. time.h - funkcje obsługi czasu. stdarg.h - narz˛edzia dla funkcji ze zmienna˛ liczba˛ argumentów. locale.h - ustawienia miedzynarodowe. ˛ errno.h - deklaracje kodów błedów. ˛ Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Wprowadzenie do C Cechy jezyka ˛ C Jezyk ˛ C nie posiada obsługi: ◮ wyjatków. ˛ ◮ sprawdzania zakresów, np. zakresów tablic (ang. range-checking). ◮ sprawdzania zgodności typów podczas czasu wykonania. ◮ automatycznego zarzadzania ˛ dynamicznie przydzielona˛ pamieci ˛ a˛ (ang. garbage collection). ◮ obiektów - nie jest to jezyk ˛ zorientowany na programowanie obiektowe tak ja np. C++, Java, C#, czy Python. ◮ metod/funkcji wirtualnych - możliwość istnienia wielu funkcji o tej samej nazwie, powiazana ˛ z możliwościa˛ wyboru konkretnej metody podczas czasu wykonania (ang. polymorphism). Wstep ˛ do programowania 1 Programy pisane na wykładzie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # include < s t d i o . h> i n t main ( void ) { int i ; f o r ( i =1; i < 10 ; i ++) { i f ( i%5 == 0 ) { p r i n t f ( " Uciekam z p e t l i : ) ! \ n " ) ; break ; } i f ( i%2 == 0 ) { p r i n t f ( " Jestem p a r z y s t a wiec s i e n i e wydrukuje ! \ n " ) ; continue ; } p r i n t f ( "%d \ n " , i ) ; } pri ntf ( " \n" ); return 0; } Wstep ˛ do programowania 1 Programy pisane na wykładzie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # include < s t d i o . h> i n t main ( void ) { f o r ( i n t i =1; i < 10 ; i ++) { i f ( i%5 == 0 ) { p r i n t f ( " Uciekam z p e t l i : ) ! \ n " ) ; break ; } i f ( i%2 == 0 ) { p r i n t f ( " Jestem p a r z y s t a wiec s i e n i e wydrukuje ! \ n " ) ; continue ; } p r i n t f ( "%d " , i ) ; } pri ntf ( " \n" ); return 0; } Wstep ˛ do programowania 1 Programy pisane na wykładzie 1 2 3 4 5 6 7 8 9 10 11 # include < s t d i o . h> i n t main ( void ) { char a = ’ a ’ ; p r i n t f ( " Znak %c ma kod %d \ n " , a , a ) ; f o r ( a= ’A ’ ; a < ’ z ’ ; a ++) { p r i n t f ( " Znak %c ma kod %d \ n " , a , a ) ; } return 0; } Wstep ˛ do programowania 1 Programy pisane na wykładzie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # include < s t d i o . h> i n t main ( void ) { char a = ’ a ’ ; p r i n t f ( " Typ znakowy ma %u B a j t Ă ł w \ n " , s iz e o f ( a ) ) ; p r i n t f ( " Typ i n t ma %u Bajtow \ n " , s iz e o f ( i n t ) ) ; p r i n t f ( " Typ unsigned i n t ma %u Bajtow \ n " , s iz e o f ( unsigned i n t ) ) ; p r i n t f ( " Typ l o n g ma %u Bajtow \ n " , s iz e o f ( long ) ) ; p r i n t f ( " Typ l o n g l o n g ma %u Bajtow \ n " , s iz e o f ( long long ) ) ; typedef i n t A ; A b = 6; p r i n t f ( "%d \ n " , b ) ; return 0; }