Środowisko programisty/C - zmienne i funkcje: Różnice pomiędzy wersjami
| Linia 26: | Linia 26: | ||
== Funkcje == | == Funkcje == | ||
=== Podstawy === | |||
W języku C nie występuje, w przeciwieństwie do Pascala, ścisły podział na funkcje i procedury. Występują jedynie funkcje, które niekoniecznie muszą dawać jakikolwiek wynik. Składnia funkcji jest następująca: | W języku C nie występuje, w przeciwieństwie do Pascala, ścisły podział na funkcje i procedury. Występują jedynie funkcje, które niekoniecznie muszą dawać jakikolwiek wynik. Składnia funkcji jest następująca: | ||
| Linia 41: | Linia 43: | ||
return a + b; | return a + b; | ||
} | } | ||
=== Funkcja main === | |||
Funkcja main, której wynikiem jest liczba typu int, jest główną funkcją w C i jest wykonywana automatycznie w momencie uruchomienia programu. Korzystając z funkcji dodaj można napisać następujący program: | Funkcja main, której wynikiem jest liczba typu int, jest główną funkcją w C i jest wykonywana automatycznie w momencie uruchomienia programu. Korzystając z funkcji dodaj można napisać następujący program: | ||
| Linia 50: | Linia 54: | ||
} | } | ||
Wynik działania funkcji main jest przekazywany do powłoki i w sytuacji kiedy wykonanie programu zakończy się sukcesem, powinien wynosić 0. | Wynik działania funkcji main jest przekazywany do powłoki i w sytuacji kiedy wykonanie programu zakończy się sukcesem, powinien wynosić 0. | ||
=== Słowo kluczowe return === | |||
Funkcja kończy swoje działanie po napotkaniu instrukcji return. Czyli następujący kod jest poprawny (funkcja liczy sumę): | |||
int dodaj(int a, int b) | |||
{ | |||
return a + b; | |||
return a * b; // Ta instrukcja nigdy się nie wykona | |||
} | |||
=== Procedury === | |||
Niekiedy występuje potrzeba utworzenia funkcji, która niczego nie oblicza, czyli znanej z Pascala procedury. W takim przypadku możemy zastosować konstrukcję: | |||
void funkcja() | |||
{ | |||
... | |||
return | |||
} | |||
Popatrzmy na następujący przykład: | |||
#include <stdio.h> | |||
int dodaj(int a, int b) | |||
{ | |||
return a + b; | |||
}; | |||
void wypisz(int i) | |||
{ | |||
printf("%d\n", i); | |||
return; | |||
}; | |||
int main() | |||
{ | |||
wypisz(dodaj(1,1)); | |||
return 0; | |||
} | |||
== Wybrane funkcje biblioteczne == | == Wybrane funkcje biblioteczne == | ||
Wersja z 11:06, 17 sie 2006
Typy zmiennych
Typy proste
Język C definiuje następujące typy proste
| Nazwa | Znaczenie | Typowy zakres |
|---|---|---|
| char | znak | |
| unsigned char | mała liczba całkowita | 0-255 |
| short int | liczba całkowita | |
| unsigned short int | liczba dodatnia | |
| int | duża liczba całkowita | |
| float | liczba rzeczywista | |
| double | duża liczba rzeczywista |
Funkcje
Podstawy
W języku C nie występuje, w przeciwieństwie do Pascala, ścisły podział na funkcje i procedury. Występują jedynie funkcje, które niekoniecznie muszą dawać jakikolwiek wynik. Składnia funkcji jest następująca:
typ nazwa_funkcji(lista parametrów)
{
treść funkcji
return wynik_funkcji
}
Napiszmy funkcję obliczającą sumę dwóch parametrów
int dodaj(int a, int b)
{
return a + b;
}
Funkcja main
Funkcja main, której wynikiem jest liczba typu int, jest główną funkcją w C i jest wykonywana automatycznie w momencie uruchomienia programu. Korzystając z funkcji dodaj można napisać następujący program:
int main()
{
printf("%d\n", dodaj(1,1));
return 0;
}
Wynik działania funkcji main jest przekazywany do powłoki i w sytuacji kiedy wykonanie programu zakończy się sukcesem, powinien wynosić 0.
Słowo kluczowe return
Funkcja kończy swoje działanie po napotkaniu instrukcji return. Czyli następujący kod jest poprawny (funkcja liczy sumę):
int dodaj(int a, int b)
{
return a + b;
return a * b; // Ta instrukcja nigdy się nie wykona
}
Procedury
Niekiedy występuje potrzeba utworzenia funkcji, która niczego nie oblicza, czyli znanej z Pascala procedury. W takim przypadku możemy zastosować konstrukcję:
void funkcja()
{
...
return
}
Popatrzmy na następujący przykład:
#include <stdio.h>
int dodaj(int a, int b)
{
return a + b;
};
void wypisz(int i)
{
printf("%d\n", i);
return;
};
int main()
{
wypisz(dodaj(1,1));
return 0;
}