Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio



Podobne dokumenty
Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Ćwiczenie Obsługa klawiatury i myszy

Informatyka I : Tworzenie projektu

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

I - Microsoft Visual Studio C++

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

WPROWADZENIE DO INFORMATYKI

Pliki. Informacje ogólne. Obsługa plików w języku C

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

1.Wstęp. 2.Generowanie systemu w EDK

2 Przygotował: mgr inż. Maciej Lasota

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1. Wprowadzanie danych z klawiatury funkcja scanf

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Podstawy programowania C. dr. Krystyna Łapin

Język ludzki kod maszynowy

Wstęp do Programowania, laboratorium 02

Języki i metodyka programowania. Wprowadzenie do języka C

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

1 Podstawy c++ w pigułce.

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Biblioteka standardowa - operacje wejścia/wyjścia

1 Podstawy c++ w pigułce.

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Praca w środowisku Visual Studio 2008, Visual C

Utworzenie pliku. Dowiesz się:

Programowanie w języku Python. Grażyna Koba

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Pliki. Informacje ogólne. Obsługa plików w języku C

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Zmienne, stałe i operatory

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Część 4 życie programu

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Podstawy programowania skrót z wykładów:

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Allegro5 część 1 - Witaj Świecie! Projekt, inicjalizacja, tworzenie okna, czcionki. Autor: Kamil Krzyszczuk - C mons

Programowanie strukturalne język C - wprowadzenie

Programowanie w językach wysokiego poziomu

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy programowania w C++

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Programowanie niskopoziomowe

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Programowanie Komputerów 2FD. Materiały pomocnicze do laboratorium

Programowanie w Javie

Programowanie obiektowe zastosowanie języka Java SE

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

KURS C/C++ WYKŁAD 1. Pierwszy program

Programowanie obiektowe

Microsoft IT Academy kurs programowania

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Programowanie obiektowe

/*W tym miejscu funkcja system wywołuje systemową komendę PAUSE tj.czeka tak długo, aż zostanie wciśnięty dowolny znak z

Microsoft Visual C Express Edition

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Wstęp do programowania. Wykład 1

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Argumenty wywołania programu, operacje na plikach

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Proces tworzenia programu:

C++ - [1-3] Debugowanie w Qt Creator

Ćwiczenie 1. Przygotowanie środowiska JAVA

C++ wprowadzanie zmiennych

Podstawy Programowania.

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Podstawy programowania - 1

Programowanie strukturalne i obiektowe

Podręcznik użytkownika programu. Ceremonia 3.1

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wprowadzenie do środowiska Qt Creator

Programowanie proceduralne w języku C++ Podstawy

Transkrypt:

Programowanie Ćwiczenie Język C. Środowisko programowania Visual Studio Tematy ćwiczenia praca ze środowiskiem, tworzenie i uruchomienie programu, struktura programu, deklaracje i definicje typy standardowe, tworzenie okna konsolowego Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie na bazie materiałów ćwiczenia. Bazowa zawartość sprawozdania musi być przygotowana przed ćwiczeniem (sprawozdanie do ćwiczenia pierwszego jest przygotowywane w czasie ćwiczenia). W czasie ćwiczenia do sprawozdania są dodawane wyniki testowania. Treść sprawozdania: strona tytułowa, spis treści sporządzony za pomocą Word'a, dla każdego zadania rozdziały "Zadanie", "Opracowanie zadania" (rozdział z tekstem programu, obliczeniami i komentarzami), "Testowanie" (rozdział z opisem danych wejściowych i wynikami testowania, w tym zrzuty okien). Wzorzec strony tytułowej znajduje się w pliku Strona_tytulowa_niestac_Programowanie_PWSBiA.doc. Nazwa pliku ze sprawozdaniem musi zawierać skrót "P_", numer ćwiczenia i nazwisko studenta (bez polskich liter, żeby można było archiwizować). Pliki ze sprawozdaniem są przekazywane do archiwum grupy. a) Program pierwszy Zadanie W środowisku Microsoft Visual Studio stworzyć projekt. Wybrać punkt menu File / New / Project..., zaznaczyć język programowania i podsystem Visual C++ / Win32, rodzaj aplikacji Win32 Console Application, wprowadzić na dole okna nazwę projektu, na przykład Cw1, oraz wybrać katalog, do którego będą zapisywane pliki. Nacisnąć OK. W oknie "Win32 Application Wizard" wybrać punkt menu "Application Settings". W oknie "Application Settings" ustawić opcję "Empty Project" i nacisnąć "Finish". Dalej należy dodać do projektu plik, w którym będzie umieszczony tekst programu. W tym celu nacisnąć prawym przyciskiem myszy na nazwę projektu w oknie "Solution Explorer", wybrać punkt "Add", wybrać punkt "New Item...".

W oknie "Add New Item" zaznaczyć punkt "Code" w "Categories", punkt "C++ File" w "Templates", a na dole wpisać nazwę pliku z rozszerzeniem.c, na przykład "main.c" 1. Nacisnąć "Add". Przez punkt menu "Project / Properties..." wyświetlić okno "Property Pages". W oknie zaznaczyć "Configuration Properties / General" i ustawić (lub sprawdzić ustawienie) opcję "Use of MFC" w stan "Use Standard Windows Libraries". Dalej w oknie "Property Pages" zaznaczyć "C/C++ / Advanced" i ustawić opcję "Compile As" w stan "Compile As C code (/TC)". Zatwierdzić zmiany naciskając Zastosuj i OK. Zamknąć okno "Property Pages". Do głównego programu (tj. do pliku main.c ) wprowadzić tekst: #include <stdio.h> #include <Windows.h> int main(void) { char tt[]="program w C. <imię, nazwisko> \r\n\r\n"; char buf[128]; //------------------ CharToOemA(tt,buf); //zamiana kodowania printf(buf); //wyprowadzenie na ekran //------------------ system("pause"); //zatrzymanie okna MS DOS return 0; } Na końcu funkcji main jest dodane wywołanie funkcji system(): system("pause"); żeby aplikacja nie znikała z ekranu. Funkcja CharToOemA() zamienia kody polskich znaków komunikatu. Wykonać kompilację przez punkt menu BUILD/Rebuild Solution. Uruchomić program w oknie konsolowym (oknie MS DOS) naciskając punkt menu "DEBUG / Start Debugging" lub przyciski Ctrl+F5, lub wykonując operacji w MS DOS w oknie otwartym w Explorator Windows przez punkt menu Plik / Otwórz wiersz poleceń. Zapisać projekt w trybie File / Save All. Opracowanie zadania <tekst programu> Testowanie <zrzut okna aplikacji> ----------------------------------------------------------------------------------------------------------------- 1 Kompilator w środowisku Visual Studio przekształca plik z programem w zależności od rozszerzenia: dla rozszerzenia ".cpp" tekst jest kompilowany w języku C++, dla rozszerzenia ".c" tekst jest kompilowany w języku C.

b) Wykrywanie błędów Zadanie Przeanalizować program w trybie wykrywania usterek (trybie debuggowania). Ustawić punkt zatrzymania na pierwszej instrukcji funkcji main. Uruchomić aplikację. Skierować do okna Watch (punkt menu Debug/Quick Watch...) wszystkie zmienne. W trybie "Step Over" wykonać instrukcje programu do instrukcji return. Testowanie <zrzut okna ze strzałkami debuggera> -----------------------------------------------------------------------------------------------------------------

c) Tworzenie okna konsolowego Zadanie W programie otworzyć okno konsolowe. Wyświetlić okno i komunikaty innymi kolorami niż kolory okna MS DOS. Na środku okna wypisać komunikat Kolory są ustawione przez <imię i nazwisko>. Opracowanie zadania <tekst programu> Testowanie <zrzut okna aplikacji> ----------------------------------------------------------------------------------------------------------------- Zamknąć środowisko Visual Studio. Wskazówki Tworzenie okna konsolowego Konsolową nazywamy aplikację, w której stosuje się tylko tekstowy tryb monitora. Aplikacja konsolowa przyjmuje polecenia użytkownika z klawiatury lub od myszy oraz wyświetla wyniki obliczeń w postaci tekstu. Aplikacja konsolowa może być otwarta w osobnym oknie lub aplikacja może korzystać z okna MS DOS, które Windows otwiera spod punktu menu Plik / Otwórz wiersz poleceń. Do zalet aplikacji konsolową należy szybkość jej napisania, co wynika z prostego faktu, że nie trzeba opracowywać graficzną część aplikacji. System Windows tworzy okno konsoli jako okno najprostszego rodzaju i kieruje do okna minimalną ilość komunikatów. Do komunikacji z oknem konsoli Windows tworzy trzy bufory: wejściowy, przez który konsola przyjmuje symboli z klawiatury, wyjściowy, zawartość którego jest wyświetlana przez konsolę, komunikatów o błędach. Każdy z buforów posiada deskryptor. Do pobrania deskryptora buforu służy funkcja API GetStdHandle. Na rodzaj deskryptora wskazuje stała STD_INPUT_HANDLE lub STD_OUTPUT_HANDLE. W aplikacjach konsolowych często jest stosowana funkcja CharToOem, która zamienia kody znaków tekstu na kody OEM (Original Equipment Manufacturer), co powoduje na polskojęzycznym komputerze wyświetlenie polskich znaków. Przez stos funkcja otrzymuje dwa argumenty: wskaźnik na wiersz źródłowy i wskaźnik na bufor dla tekstu przekształconego.

Fragmenty programu konsolowego //Aplikacja z tworzeniem okna konsoli #include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #include <windows.h> char tytul[]="..."; char tekst1[]="..."; char buf[128]; HANDLE hinp,hout; COORD pole; int rbuf,rfakt,rout,lengbuf; //--- Kolory ---- unsigned short kolor1 = 0xFC; // Bity koloru: BG_I,R,G,B,FG I,R,G,B unsigned short kolor2 = 0xF9; // Bity koloru: BG_I,R,G,B,FG I,R,G,B int main(void) { //--- tworzenie konsoli --- FreeConsole(); AllocConsole(); //--- CharToOemA(tytul,tytul); SetConsoleTitleA(tytul); //--- hout=getstdhandle(std_output_handle);//deskryptor buforu wyjściowego hinp=getstdhandle(std_input_handle); // deskryptor buforu wejściowego //--- obliczenie rozmiaru buforu ekranu pole=getlargestconsolewindowsize(hout); rbuf=pole.x * pole.y; //--- napełnienie komórek jednakowym atrybutem --- pole.x=0; pole.y=0; FillConsoleOutputAttribute(hout,kolor2,rbuf,pole,&rfakt); //--- ustawienie kursora --- pole.x=0; pole.y=20; SetConsoleCursorPosition(hout,pole); //ustawienie pozycji kursora //--- wyprowadzenie komunikatu informacyjnego --- SetConsoleTextAttribute(hout,kolor1); CharToOemA(tekst1,buf); //konwersja polskich znaków lengbuf=(int)strlen(buf); WriteConsoleA(hout,buf,lengbuf,&rfakt,NULL); //--- getch(); //zatrzymanie zniknięcia okna //--- zamknięcie konsoli FreeConsole(); return 0; }

Funkcje API (Application Programming Interface) Win32 Na początku programu z funkcjami API Win32 należy dodawać instrukcję dla kompilatora: #include <windows.h> Funkcje API Win32 przyjmują parametry tylko przez stos; nie stosuje się przekazywania parametrów przez rejestry. Nazwa bibliotecznej funkcji API może być trochę inna niż nazwa pokazana przez system na ekranie pomocy. Na przykład w bibliotekach import32.lib i user32.lib znajduje się funkcja WriteConsoleA, a na ekranie widzimy informacje o funkcji WriteConsole. Dodatkowa litera A w nazwie funkcji WriteConsoleA i podobnych funkcji odpowiada rodzaju tej funkcji dla wierszy w kodzie ANSI. Jeśli na końcu nazwy funkcji jest litera W, to funkcja operuje wierszami UNICODE. Na zakończenie swojego działania funkcja API przez rejestr - akumulator EAX zwraca wartość, która jest wynikiem obliczeń. Często wartość 0 lub wartość dodatnia odpowiadają pomyślnemu zakończeniu działań, a wartość -1 wskazuje na niepowodzenie. W przypadku niepowodzenia funkcja API wywołuje funkcję SetLastError, do której przekazuje podwójne słowo z kodem niepowodzenia. Ten kod można przeczytać wywołując funkcje GetLastError bezpośrednio po wywołaniu funkcji API. Aby komunikaty były wyświetlane na ekranie z poprawnymi polskimi literami, należy stosować funkcję CharToOemA() z zestawu "Platform SDK (Software Development Kit)". Funkcja CharToOemA() pobiera tekst z pierwszego argumentu - tablicy tekstowej, przekoduje i zapisuje do drugiego argumentu - tablicy tekstowej. Aby zastosować funkcję CharToOemA() należy umieścić tekst w tablicy tekstowej oraz zdefiniować bufor tekstowy, na przykład: char tekst[]="program w C. Autor Ąćęł Ńóśżź \r\n\r\n"; char buf[256]; CharToOemA(tekst,buf); printf(buf); Funkcje API Win32 związane z konsolą BOOL AllocConsole(void); //Alokacja konsoli. BOOL FreeConsole(void); //Zamykanie wszystkich konsoli. HANDLE GetStdHandle(DWORD nstdhandle) Pobranie deskryptora buforu konsoli: wejściowego przy nstdhandle = STD_INPUT_NANDLE, wyjściowego przy nstdhandle = STD_OUTPUT_NANDLE. BOOL SetConsoleTitleA(LPCTSTR lpconsoletitle); Wypisywanie nagłówka okna konsolowego. Argument: lpconsoletitle adres wiersza nagłówka.

BOOL SetConsoleTextAttribute(HANDLE hconsoleoutput, WORD wattributes); Ustawienie atrybutów tekstowych. Argumenty: hconsoleoutput deskryptor buforu wyjściowego konsoli, wattributes kolor. COORD GetLargestConsoleWindowSize(HANDLE hconsoleoutput); Zwraca maksymalny rozmiar okna konsoli. Argument: hconsoleoutput deskryptor buforu wyjściowego konsoli. Struktura typu COORD: typedef struct _COORD { SHORT X; //współrzędna X SHORT Y; //współrzędna Y } COORD, *PCOORD; BOOL FillConsoleOutputAttribute(HANDLE hconsoleoutput,word wattribute, DWORD nlength,coord dwwritecoord,lpdword lpnumberofattrswritten); Wpisuje do buforu wyjściowego (ekranu) atrybuty znakowe. Argumenty: hconsoleoutput deskryptor buforu wyjściowego konsoli, wattribute kolor, nlength ilość pozycji, dwwritecoord współrzędne X, Y pierwszej pozycji w oknie konsoli, lpnumberofattrswritten adres zmiennej, do której będzie zapisana faktyczna ilość pozycji. BOOL SetConsoleCursorPosition(HANDLE hconsoleoutput,coord dwcursorposition); Ustawienie pozycji kursora. Argumenty: hconsoleoutput deskryptor buforu wyjściowego konsoli, dwcursorposition współrzędne X, Y (typ COORD) pozycji w oknie konsoli. BOOL WriteConsoleOutputCharacter(HANDLE hconsoleoutput, LPCTSTR lpcharacter,dword nlength,coord dwwritecoord, LPDWORD lpnumberofcharswritten); Wyprowadzenie znaków od pozycji kursora. Argumenty: hconsoleoutput deskryptor buforu wyjściowego konsoli, lpcharacter adres bufora z tekstem, nlength ilość znaków, dwwritecoord współrzędne X, Y pierwszej pozycji w oknie konsoli, lpnumberofcharswritten adres zmiennej, do której będzie zapisana faktyczna ilość wyprowadzonych znaków. BOOL WriteConsole(HANDLE hconsoleoutput,const VOID* lpbuffer, DWORD nnumberofcharstowrite,lpdword lpnumberofcharswritten, LPVOID lpreserved); Wyprowadzenie znaków do buforu konsoli

Argumenty: hconsoleoutput deskryptor buforu wyjściowego konsoli, lpbuffer adres bufora z tekstem, nnumberofcharstowrite ilość znaków, lpnumberofcharswritten adres zmiennej, do której będzie zapisana faktyczna ilość wyprowadzonych znaków,. lpreserved rezerwa (musi być 0). Funkcje standardowe Funkcja printf wyprowadza dane do strumienia wyjściowego stdout, tj. na ekran monitora w trybie tekstowym. Zaznaczając słowo "printf" i naciskając F1 można otrzymać pełną informację o tej funkcji, a w tym o nazwie pliku nagłówkowego stdio.h zawierającego deklarację funkcji. Aby wprowadzić nazwie pliku nagłówkowego, należy na początku programu dodać instrukcję kompilatora, na przykład: #include <stdio.h> Funkcja getch czeka na wprowadzenie znaku z klawiatury. System operacyjny Windows też "czeka", i okno nie znika. Funkcja getch zwraca kod znaku. Opis funkcji getch znajduje się w pliku conio.h. Należy na początku pliku dodawać instrukcję dla kompilatora: #include <conio.h> Typy standardowe Liczbowe typy danych języka C są przedstawione w niżej położonej tabeli. Rodzaj danych i zakres wartości Typ Rozmiar w bajtach Liczba całkowita od -128 do +127 signed char 1 Liczba całkowita bez znaku od 0 do 255 unsigned char (lub char) 1 Liczba całkowita od -32768 do +32767 short int (lub short) 2 Liczba całkowita bez znaku od 0 do 65535 unsigned short int(lub unsigned 2 short) Liczba całkowita od -2147483648 do long int(lub long, lub int) 4 +2147483647 Liczba całkowita od 0 do +4294967295 Liczba całkowita od -9223372036854775808 do +9223372036854775807 Liczba całkowita bez znaku od 0 do 18446744073709551615 Liczba rzeczywista ze znakiem, dokładność 7 cyfr Liczba rzeczywista ze znakiem, dokładność 15 cyfr Liczba rzeczywista ze znakiem, dokładność 18 cyfr unsigned long int(lub unsigned 4 long) (lub unsigned int) long long int(lub long long) 8 unsigned long long int 8 (lub unsigned long long) float 4 double 8 long double 10

Znakowe typy danych języka C są przedstawione w niżej położonej tabeli. Rodzaj danych i zakres wartości Typ Rozmiar w bajtach Znak w kodzie rozszerzonego ASCII signed char, unsigned char 1 Znak w kodzie UNICODE UTF-16 short int, unsigned short int 2 Znak w kodzie UNICODE UTF-32 long int, unsigned long int, float 4 W języku C nie ma typu logicznego. Dla deklaracji zmiennych z dwoma wartościami fałsz i prawda stosuje się typ "int" oraz wartości 0 i nie 0.