[C++] «Long long» = «long long int» = «long int long» = «int long long»?


Answers

Является ли тип идентичным ...

Да.

C ++ 11 §7.1.6.2 / 3

« Если разрешено несколько спецификаторов s -типа , их можно свободно перемешать с другими спецификаторами-объявлениями в любом порядке.

Question

Я нашел как long int long и int long long для компиляции переменной типа. Есть ли разница между long int long , int long long , long long и long long int ?

В общем, тип идентичен, если он имеет такое же количество long ?

1 длинный:

long l;
int long il;
long int li;

2:

long long ll;
int long long ill;
long int long lil;
long long int lli;

Также, если выше правильно, следующие объявления также идентичны?

long long* llp;
int long long* illp;
long int long* lilp;
long long int* llip;



«Long long» = «long long int» = «long int long» = «int long long»?

Все остальные ответы здесь касались второй части вашего вопроса. Для первой части: «long long» = «long long int»? , ответ - да .

C ++ 11 7.1.6.2 Спецификаторы простого типа (таблица 10)

Specifier(s)            Type
...                     ...
long long int           “long long int”
long long               “long long int”
long int                “long int”
long                    “long int”  
...                     ...  

Для второй части вашего вопроса: «long int long» = «int long long»? , ответ - да.

Спецификаторы типов могут встречаться в любом порядке и могут смешиваться с другими спецификаторами объявления. Поэтому все следующие

long long  
long long int  
long int long  
int long long  

действительны и эквивалентны.