#c #typedef
#c #typedef
Вопрос:
На странице cppreference в typedef есть пример:
// typedef can be used anywhere in the decl-specifier-seq
long unsigned typedef int long ullong;
Я не могу понять, что это значит …. пожалуйста, помогите?
Комментарии:
1. Там есть гиперссылка на объявления , так что вы можете узнать, что такое decl-specifier-seq .
2. @TavianBarnes итак, правило таково: i) typedef может появляться где угодно в одном объявлении, и ii) дублированные вещи (например
long
) можно игнорировать?3.
long
не игнорируется во второй раз.long long
отличается отlong
. Если вы включитеlong
в третий раз, появится ошибка.4. @Brian so
long unsigned typedef int long ullong;
равноtypedef unsigned long long int ullong;
?5. @TavianBarnes там их два
long
Ответ №1:
Это означает то же самое, что
typedef unsigned long long int ullong;
Пять слов typedef
, unsigned
, long
, long
, и int
являются decl-specifier s, образующими один decl-specifier-seq, и (с некоторыми возможными исключениями из крайнего случая) значение или действительность decl-specifier-seq не зависит от порядка decl-спецификаторов.
Обратите внимание, что это int static x;
означает то же самое, static int x;
что и , и void virtual f();
означает то же самое, virtual void f();
что и, чтобы привести несколько дополнительных примеров.
Ответ №2:
unsigned long long int
это тип данных в C . Эта строка в основном создает для нее псевдоним: «ullong».