Unetway

C++ - Типы модификаторов

C ++ допускает, чтобы символы char, int и double имели предшествующие им модификаторы. Модификатор используется для изменения значения базового типа, чтобы он более точно соответствовал потребностям различных ситуаций.

Модификаторы типа данных:

  • signed
  • unsigned
  • long
  • short

Модификаторы signed, unsigned, long и short могут применяться к целым базовым типам. Кроме того, signed и unsigned могут применяться к char, и long можно применять к double.

Модификаторы, signed и unsigned, также могут использоваться в качестве префикса для long или short модификаторов. Например, unsigned long int .

C ++ допускает сокращенное обозначение для объявления unsigned, short, или long целых чисел. Вы можете просто использовать слово unsigned, short или long, без int . Это автоматически подразумевает int . Например, следующие два оператора объявляют беззнаковые целочисленные переменные. 

unsigned x;
unsigned int y;

Чтобы понять разницу между тем, как подписанные и беззнаковые целочисленные модификаторы интерпретируются C ++, вы должны запустить следующую короткую программу:

#include <iostream>
using namespace std;
 
/* This program shows the difference between
   * signed and unsigned integers.
*/
int main() {
   short int i;           // a signed short integer
   short unsigned int j;  // an unsigned short integer

   j = 50000;

   i = j;
   cout << i << " " << j;

   return 0;
}

Когда эта программа запускается, следующим является вывод:

-15536 50000

Вышеприведенный результат заключается в том, что бит-шаблон, который представляет 50 000 в виде короткого целого без знака, интерпретируется как -15536 ​​коротким.

Тип Квалификаторы в C ++

Спецификаторы типов предоставляют дополнительную информацию о переменных, которым они предшествуют.

const

Объекты типа const не могут быть изменены программой во время выполнения.

volatile

Модификатор volatile сообщает компилятору, что значение переменной может быть изменено способами, явно не указанными программой.

restrict

Указатель restrict изначально является единственным средством, с помощью которого объект, к которому он указывает, может быть доступен. Только C99 добавляет новый классификатор типа, называемый ограничителем.