Identificadores de C++
Um identificador é uma seqüência de caracteres usado para denotar um destes procedimentos:
Nome do objeto ou variável
A classe, estrutura ou nome de união
Nome do tipo enumerado
Membro de uma classe, estrutura, união ou enumeração
Função ou a função de membro de classe
nome de TypeDef
Nome de rótulo
Nome da macro
Parâmetro de macro
Os seguintes caracteres são legais, como o primeiro caractere de um identificador ou qualquer caractere subseqüente:
_ a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Os seguintes caracteres são legais como qualquer caractere em um identificador, exceto a primeira:
0 1 2 3 4 5 6 7 8 9
Específicos do Microsoft
Os primeiros 2048 caracteres de identificadores de Microsoft C++ são significativos.Nomes de tipos definidos pelo usuário são "decorados" pelo compilador para preservar as informações de tipo.O nome resultante, incluindo o tipo de informação, não é possível ter mais de 2048 caracteres.(Consulte Nomes decorados para obter mais informações.) Fatores que podem influenciar o comprimento de um identificador decorado são:
Se o identificador denota um objeto do tipo definido pelo usuário ou um tipo derivado de um tipo definido pelo usuário.
Se o identificador denota uma função ou um tipo derivado de uma função.
O número de argumentos para uma função.
O cifrão também é um identificador válido no Visual C++.
// dollar_sign_identifier.cpp
struct $Y1$ {
void $Test$() {}
};
int main() {
$Y1$ $x$;
$x$.$Test$();
}
Específicos do Microsoft final
O primeiro caractere de um identificador deve ser um caractere alfabético em maiúsculo ou minúsculas, ou um sublinhado ( _ ).Porque os identificadores de C++ diferenciam maiúsculas de minúsculas, fileName é diferente de FileName.
Os identificadores não podem ser exatamente a mesma grafia e caso como palavras-chave.Identificadores que contêm palavras-chave são legais.Por exemplo, Pint é um identificador legal, mesmo que ele contém int, que é uma palavra-chave.
Uso de dois caracteres sublinhados seqüencial ( _ _ ) no início de um identificador ou um sublinhado à esquerda simples seguido por uma letra maiúscula, está reservado para implementações de C++ em todos os escopos.Evite usar um sublinhado à esquerda seguido de uma letra minúscula para nomes com escopo de arquivo por causa dos possíveis conflitos com identificadores reservados atuais ou futuros.