Tym razem chciałbym przedstawić krótki post dotyczący obsługi wartości stałej z wykorzystaniem słowa kluczowego const.
Stała jest to zmienna której nie można zmienić wartości w trakcie działania programu. Stałą, jak już wspomniałęm wcześniej deklaruje się z użyciem słowa kluczowego const, które zostaje umieszczone przed typem zmiennej:
- const double c = 3.45;
Stała przydaje się do deklarowania wartości, które nie ulegną zmianie, np. współczynników do obliczeń. Można ją także przypisywać do zwykłych zmiennych.
Jak wspomniałem wcześniej stałej nie można zmienić, ale tylko w sposób prosty tzn:
- const double c = 3.45;
- c=13.45; //Blad
Natomiast można wykorzystać wskaźniki i zmienić jej wartość w następujący sposób:
- #include <stdio.h>
- #include <math.h>
- void ZMIEN_CONST (double *);
- int main (void)
- {
- const double stala = 10.4;
- printf("Stala: %.2lf\n", stala);
- //Adres zmiennej x zostaje zrzutowany na typ int*. Bez rzutowanie nie zmieni
- ZMIEN_CONST((double*)&stala);
- printf("Stala po zmianie:%.2lf\n", stala);
- return 0;
- }
- void ZMIEN_CONST (double *argument)
- {
- *argument = 41.25;
- }
Drugi sposób na deklarację stałej polega na wykorzystaniu instrukcji preprocesora #define. Czyli zostaje ona zdefiniowana przed kompilacją programu. Pozwala on na zdefiniowanie różnych wartości, które często podobnie wykorzystuje się do wartości nie ulegających zmienia w trakcie działania programu, bądź do definicji portów GPIO.
Define zastępuje wprowadzone słowo, tym które do niego zostało przypisane czyli:
#define port GPIO_PIN_4
Słowo port w programie będzie miało przypisaną wartość GPIO_PIN_4.