Stałe celu-C

Stałe odnoszą się do stałych wartości, których program nie może zmieniać podczas wykonywania. Te stałe wartości są również nazywaneliterals.

Stałe mogą mieć dowolny z podstawowych typów danych, takich jak stała całkowita, stała zmiennoprzecinkowa, stała znakowa lub literał ciągu . Istnieją również stałe wyliczania.

Plik constants są traktowane jak zwykłe zmienne, z tym wyjątkiem, że ich wartości nie mogą być modyfikowane po ich definicji.

Literały całkowite

Literał liczby całkowitej może być stałą dziesiętną, ósemkową lub szesnastkową. Prefiks określa podstawę lub podstawę: 0x lub 0X dla szesnastkowej, 0 dla ósemkowej i nic dla dziesiętnej.

Literał liczby całkowitej może również mieć sufiks będący kombinacją U i L, odpowiednio dla unsigned i long. Sufiks może być pisany wielką lub małą literą i może mieć dowolną kolejność.

Oto kilka przykładów literałów całkowitych -

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */

Poniżej znajdują się inne przykłady różnych typów literałów całkowitych -

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

Literały zmiennoprzecinkowe

Literał zmiennoprzecinkowy ma część całkowitą, przecinek dziesiętny, część ułamkową i część wykładniczą. Literały zmiennoprzecinkowe można przedstawić w postaci dziesiętnej lub wykładniczej.

Przedstawiając przy użyciu postaci dziesiętnej, należy uwzględnić kropkę dziesiętną, wykładnik lub jedno i drugie, a podczas przedstawiania w postaci wykładniczej należy uwzględnić część całkowitą, część ułamkową lub obie. Podpisany wykładnik jest wprowadzany przez e lub E.

Oto kilka przykładów literałów zmiennoprzecinkowych -

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

Stałe znaku

Literały znakowe są ujęte w pojedyncze cudzysłowy, np. „X” i mogą być przechowywane w prostej zmiennej typu char rodzaj.

Literał znakowy może być zwykłym znakiem (np. „X”), sekwencją ucieczki (np. „\ T”) lub znakiem uniwersalnym (np. „\ U02C0”).

Istnieją pewne znaki w C, które są poprzedzone odwrotnym ukośnikiem, będą miały specjalne znaczenie i są używane do reprezentowania jak nowa linia (\ n) lub tabulacja (\ t). Tutaj masz listę niektórych takich kodów sekwencji ucieczki -

Sekwencja ewakuacyjna Znaczenie
\\ \ postać
\ ' ' postać
\ " " postać
\? ? postać
\za Alert lub dzwonek
\b Backspace
\fa Form feed
\ n Nowa linia
\ r Powrót karetki
\ t Zakładka pozioma
\ v Zakładka pionowa
\ ooo Liczba ósemkowa od jednej do trzech cyfr
\ xhh. . . Liczba szesnastkowa składająca się z jednej lub więcej cyfr

Poniżej znajduje się przykład pokazujący kilka znaków sekwencji sterującej -

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Hello\tWorld\n\n");
   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

2013-09-07 22:17:17.923 demo[17871] Hello	World

Literały strunowe

Literały łańcuchowe lub stałe są ujęte w podwójne cudzysłowy „”. Ciąg zawiera znaki podobne do literałów znakowych: zwykłe znaki, sekwencje ucieczki i znaki uniwersalne. Możesz podzielić długi wiersz na wiele wierszy, używając literałów łańcuchowych i oddzielając je białymi znakami.

Oto kilka przykładów literałów ciągów. Wszystkie trzy formy są identycznymi ciągami.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Definiowanie stałych

Istnieją dwa proste sposoby definiowania stałych w C -

  • Za pomocą #define preprocesor.

  • Za pomocą const słowo kluczowe.

#Define Preprocessor

Poniżej znajduje się formularz użycia #define preprocesora do zdefiniowania stałej -

#define identifier value

Poniższy przykład wyjaśnia to szczegółowo -

#import <Foundation/Foundation.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

2013-09-07 22:18:16.637 demo[21460] value of area : 50
2013-09-07 22:18:16.638 demo[21460]

Słowo kluczowe const

Możesz użyć const prefiks do deklarowania stałych o określonym typie w następujący sposób -

const type variable = value;

Poniższy przykład wyjaśnia to szczegółowo -

#import <Foundation/Foundation.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

2013-09-07 22:19:24.780 demo[25621] value of area : 50
2013-09-07 22:19:24.781 demo[25621]

Zauważ, że dobrą praktyką programistyczną jest definiowanie stałych WIELKAMI.