Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
declaration:
declaration-specifiers
attribute-seq
opt1init-declarator-listopt;
static_assert-declaration
declaration-specifiers:
storage-class-specifier
declaration-specifiers
optar por
type-specifier
declaration-specifiers
optar por
type-qualifier
declaration-specifiers
optar por
function-specifier
declaration-specifiers
optar por
alignment-specifier
declaration-specifiers
optar por
attribute-seq
1º:
attribute
attribute-seq
1ºopção1
attribute
1, 2: um dos
__asm
__based
__cdecl
__clrcall
__fastcall
__inline
__stdcall
__thiscall
__vectorcall
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
storage-class-specifier:
auto
extern
register
static
_Thread_local
typedef
__declspec
(
extended-decl-modifier-seq
)
1
extended-decl-modifier-seq
1º:
extended-decl-modifier
optar por
extended-decl-modifier-seq
extended-decl-modifier
extended-decl-modifier
1º:
thread
naked
dllimport
dllexport
type-specifier:
void
char
short
int
__int8
1
__int16
1
__int32
1
__int64
1
long
float
double
signed
unsigned
_Bool
_Complex
atomic-type-specifier
struct-or-union-specifier
enum-specifier
typedef-name
struct-or-union-specifier:
struct-or-union
identifier
optar por{struct-declaration-list}
struct-or-union
identifier
struct-or-union:
struct
union
struct-declaration-list:
struct-declaration
struct-declaration-list
struct-declaration
struct-declaration:
specifier-qualifier-list
struct-declarator-list
optar por;
static_assert-declaration
specifier-qualifier-list:
type-specifier
specifier-qualifier-list
optar por
type-qualifier
specifier-qualifier-list
optar por
alignment-specifier
specifier-qualifier-list
optar por
struct-declarator-list:
struct-declarator
struct-declarator-list
,
struct-declarator
struct-declarator:
declarator
declarator
optar por:constant-expression
enum-specifier:
enum
identifier
optar por{enumerator-list}
enum
identifier
optar por{enumerator-list,}
enum
identifier
enumerator-list:
enumerator
enumerator-list
,
enumerator
enumerator:
enumeration-constant
enumeration-constant
=
constant-expression
atomic-type-specifier:
_Atomic
(
type-name
)
type-qualifier:
const
restrict
volatile
_Atomic
function-specifier:
inline
_Noreturn
alignment-specifier:
_Alignas
(
type-name
)
_Alignas
(
constant-expression
)
declarator:
pointer
opte pordirect-declarator
direct-declarator:
identifier
(
declarator
)
direct-declarator
[
type-qualifier-list
assignment-expression
optar poroptar por]
direct-declarator
[
static
type-qualifier-list
optar porassignment-expression]
direct-declarator
[
type-qualifier-list
static
assignment-expression
]
direct-declarator
[
type-qualifier-list
optar por*]
direct-declarator
(
parameter-type-list
)
direct-declarator
(
identifier-list
)
optar por3º
pointer:
*
type-qualifier-list
optar por
*
type-qualifier-list
optar porpointer
type-qualifier-list:
type-qualifier
type-qualifier-list
type-qualifier
parameter-type-list:
parameter-list
parameter-list
,
...
parameter-list:
parameter-declaration
parameter-list
,
parameter-declaration
parameter-declaration:
declaration-specifiers
declarator
declaration-specifiers
abstract-declarator
optar por
identifier-list: /* Para declarador antigo */
identifier
identifier-list
,
identifier
type-name:
specifier-qualifier-list
abstract-declarator
optar por
abstract-declarator:
pointer
pointer
opte pordirect-abstract-declarator
direct-abstract-declarator:
(
abstract-declarator
)
direct-abstract-declarator
[
type-qualifier-list
assignment-expression
optar poroptar por]
direct-abstract-declarator
[
static
type-qualifier-list
optar porassignment-expression]
direct-abstract-declarator
[
type-qualifier-list
static
assignment-expression
]
direct-abstract-declarator
[
type-qualifier-list
optar por*]
direct-abstract-declarator
(
parameter-type-list
optar poroptar por)
typedef-name:
identifier
initializer:
assignment-expression
{
initializer-list
}
{
initializer-list
, }
initializer-list:
designation
opte porinitializer
initializer-list
,
designation
optar porinitializer
designation:
designator-list
=
designator-list:
designator
designator-list
designator
designator:
[
constant-expression
]
.
identifier
static_assert-declaration:
_Static_assert
(
constant-expression
,
string-literal
)
;
1 Este elemento gramatical é específico da Microsoft.
2 Para obter mais informações sobre esses elementos, consulte __asm, __clrcall, , __stdcall, __based, __fastcall, __cdecl__thiscall, __inlinee __vectorcall.
3 Este estilo é obsoleto.
Ver também
Convenções de chamada
Gramática da estrutura da frase
Convenções de chamada obsoletas