W języku programowania C krótki wew to typ danych używany do przechowywania wartości całkowitych. Jest to modyfikator typu, którego można używać z int typ danych aby utworzyć mniejszą zmienną całkowitą, zużywającą mniej pamięci niż zwykła int.
The krótki wew typ danych zajmuje 2 bajty pamięci, która jest o połowę mniejsza od zwykłej int typ danych i może reprezentować wartości całkowite z zakresu -32768 Do 32767 .
Składnia krótkiego int
oops, koncepcje w Javie
Składnia deklarowania krótkiej zmiennej int jest następująca:
short int variable_name;
Na przykład poniższy kod deklaruje i inicjuje a krótki wew zmienna o nazwie wiek:
short int age = 25;
Krótkie zmienne int mogą prowadzić do błędów, jeśli nie będą używane ostrożnie. Dzieje się tak dlatego, że mają one mniejszy zakres wartości niż zmienne int i może się przepełnić, jeśli przypisano mu wartość spoza ich zakresu. Z tego powodu ważne jest, aby wartości przypisane krótkiej zmiennej int mieściły się w jej zakresie.
Ponadto zamiast słowa kluczowego można użyć słowa kluczowego short krótki wew zadeklarować zmienną tego typu. Dlatego poniższe dwie deklaracje są równoważne:
short int variable_name; short variable_name;
Kilka innych dodatkowych szczegółów na temat typ danych „krótki int”. są następujące:
Jak wspomniano wcześniej, short int zajmuje 2 bajty pamięci, która jest o połowę mniejsza niż zwykły typ danych int. Rozmiar krótkiej int jest definiowany przez implementację, co oznacza, że może się różnić w zależności od używanej platformy i kompilatora. Jednak zawsze gwarantuje się, że będzie mniejszy niż zwykła int.
Jeśli chodzi o zakres wartości, krótki int może przechowywać wartości całkowite z zakresu -32768 Do 32767 . Zakres ten można określić za pomocą SHRT_MIN I SHRT_MAX stałe, które są zdefiniowane w pliku limity.h plik nagłówkowy.
Typ danych short int jest zwykle używany, gdy problemem jest miejsce w pamięci lub gdy zakres wartości przechowywanych w zmiennej mieści się w zakresie short int. Oto kilka przykładów sytuacji, w których można użyć krótkiej int:
- W systemach wbudowanych, w których pamięć jest ograniczona.
- Podczas tworzenia dużych tablic liczb całkowitych, gdzie należy zoptymalizować użycie pamięci.
- Gdy wiadomo, że zakres wartości przechowywanych w zmiennej mieści się w zakresie a krótki wew , takie jak przechowywanie wieku osoby, który zazwyczaj nie przekracza 100 lat .
The krótki typ danych int jest modyfikatorem typu, co oznacza, że można go używać w połączeniu z innymi typami danych w celu tworzenia nowych typów danych. Na przykład poniżej znajdują się prawidłowe deklaracje zmiennych:
short int x; short y; short int *ptr; short int arr[10];
Podczas wykonywania operacji arytmetycznych lub porównawczych pomiędzy zmiennymi o różnych typach danych, C może wykonywać niejawne konwersje, aby zapewnić prawidłowe wykonanie operacji. Używając krótkich zmiennych int, należy mieć świadomość tych konwersji, ponieważ mogą one skutkować nieoczekiwanym zachowaniem. Rozważmy na przykład następujący kod:
#include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d ', z); return 0; }
Wyjście:
500
Wyjaśnienie:
W tym kodzie z ja s przypisano wartość 500 , co jest poprawnym wynikiem dodania X I I . Jeśli jednak drukuj oświadczenie zostaje zmienione na printf('%hu ', z), wyjście będzie 244 , co jest wynikiem konwersji 500 do niepodpisanego krótki wew . Dzieje się tak, ponieważ %hu używany jest specyfikator formatu, który wskazuje, że drukowana wartość powinna być krótką int bez znaku.
Wykonując operacje pomiędzy zmiennymi o różnych typach danych, C może dokonywać awansów i degradacji, aby mieć pewność, że operacje zostaną wykonane poprawnie. Awans ma miejsce, gdy zmienna o mniejszym typie danych jest niejawnie konwertowana na zmienną o większym typie danych, natomiast degradacja następuje, gdy zmienna o większym typie danych jest niejawnie konwertowana na zmienną o mniejszym typie danych. Używając krótkich zmiennych int, należy mieć świadomość tych awansów i degradacji, ponieważ mogą one mieć wpływ na wyniki operacji arytmetycznych i porównawczych.
Jeśli krótka zmienna int jest zadeklarowany bez inicjalizacji, jego wartość jest niezdefiniowana. Innymi słowy, może zawierać dowolną wartość, w tym wartość ujemną lub wartość spoza zakresu krótki wew . Dlatego dobrą praktyką jest zawsze inicjalizować zmienne o znanej wartości podczas ich deklarowania.
Algorytm wyszukiwania binarnego
Odlew to proces konwersji zmiennej z jednego typu danych na inny. Podczas rzutowania zmiennej na a krótki wew , wartość zmiennej jest obcinana, aby zmieścić się w zakresie krótki wew . Rozważmy na przykład następujący kod:
int x = 500; short int y = (short int) x;
W tym kodzie wartość X Jest 500 , który jest poza zakresem short int. Jednak kiedy X jest rzutowany na a krótki int, wartość jest obcinana, aby zmieścić się w zakresie krótki wew , w wyniku I przypisuje się wartość -12 . Dlatego podczas rzutowania zmiennych ważne jest, aby upewnić się, że wynikowa wartość mieści się w zakresie rzutowanego typu danych.
Domyślnie, krótki wew jest podpisany typ danych , co oznacza, że może reprezentować zarówno wartości dodatnie, jak i ujemne. Można jednak również zadeklarować krótki wew jako typ danych bez znaku, używając metody krótki int bez znaku Lub krótkie słowo kluczowe bez znaku . Krótki int bez znaku może reprezentować tylko wartości nieujemne, ale jego zakres jest podwojony 0 Do 65535 .
Topologia sieci
Od krótki wew jest mniejszym typem danych niż wew , można go niejawnie promować do int, gdy jest używany w arytmetyka lub operacje porównania z int. Oznacza to, że A krótki wew można stosować wszędzie tam, gdzie np wew oczekuje się, bez potrzeby wyraźnej obsady.
Rozmiar krótki wew może się różnić w zależności od używanej platformy i kompilatora. Aby zapewnić przenośność kodu na różnych platformach, zaleca się użycie plik nagłówkowy stdint.h , który definiuje typy całkowite o stałym rozmiarze, z określonymi szerokościami i podpisem. Na przykład typ int16_t jest 16-bitowy typ liczby całkowitej ze znakiem , co jest równoważne krótki wew na większości platform.
Deklarując tablicę krótkie wartości int , dostęp do każdego elementu tablicy odbywa się za pomocą indeksu. Indeks może być literałem całkowitym lub zmienną typu int. Jeśli jednak indeks jest zmienną typu krótki wew , zostanie automatycznie awansowany na wew przed użyciem w celu uzyskania dostępu do tablicy. Na przykład:
short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index
krótki wew może być używany do operacji manipulacji bitami, takich jak przeniesienie I maskowanie . Podczas przesuwania A krótki wew wartością, wynikiem jest krótka wartość int. Jednak w przypadku używania operatorów bitowych, takich jak & i |, krótkie wartości int są najpierw promowane do int przed wykonaniem operacji.
W niektórych przypadkach użycie short int zamiast int może poprawić wydajność, szczególnie na platformach z ograniczoną pamięcią lub mocą obliczeniową. Zależy to jednak od konkretnego zastosowania i używanego sprzętu i powinno być testowane indywidualnie dla każdego przypadku.
Język C zapewnia przyrostek inicjujący zmienne krótkim typem int. Sufiks 'S' Lub 'S' można użyć ze stałą wartością, aby jawnie określić krótką stałą int. Na przykład:
Short int x=10s;