Share via


Type Names

Type names are used in some declarators in the following ways:

  • In explicit conversions
  • As arguments to the sizeof operator
  • As arguments to the new operator
  • In function prototypes
  • In typedef statements

A type name consists of type specifiers, as described in Chapter 6, Declarations and Abstract Declarators.

In the following example, the arguments to the function strcpy are supplied using their type names. In the case of the source argument, const char is the specifier and * is the abstract declarator:

static char *szBuf, *strcpy( char *dest, const char *source );

Syntax

  • type-name :
    type-specifier-list abstract-declaratoropt
  • type-specifier-list :
    type-specifier type-specifier-listopt
  • abstract-declarator :
    ptr-operator abstract-declaratoropt
    abstract-declaratoropt ( argument-declaration-list ) cv-qualifier-listopt
    abstract-declaratoropt [ constant-expressionopt ]
    ( abstract-declarator )