sobota, 17 września 2016

C - Zmienna const

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:

  1. 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:

  1. const double c = 3.45;
  2. c=13.45;    //Blad

Natomiast można wykorzystać wskaźniki i zmienić jej wartość w następujący sposób:

  1. #include <stdio.h>
  2. #include <math.h>
  3. void ZMIEN_CONST (double *);
  4. int main (void)
  5. {
  6.     const double stala = 10.4;
  7.     printf("Stala: %.2lf\n", stala);
  8.     //Adres zmiennej x zostaje zrzutowany na typ int*. Bez rzutowanie nie zmieni
  9.     ZMIEN_CONST((double*)&stala);
  10.     printf("Stala po zmianie:%.2lf\n", stala);
  11.     return 0;
  12. }
  13. void ZMIEN_CONST (double *argument)
  14. {
  15.     *argument = 41.25;
  16. }

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.