Pergunta

O que o C ++ digamos padrão sobre o uso de cifrões em identificadores, como Hello$World? eles são legais?

Foi útil?

Solução

A c ++ identificador pode ser composta por qualquer um dos seguintes:. _ (Sublinhado), os algarismos 0-9, as letras a-z (ambos os casos superior e inferior) e não pode começar com um número

Há uma série de excepções, como C99 permite extensões para o padrão (por exemplo visuais estúdio ).

Outras dicas

Eles são ilegais. Os únicos caracteres legais em identificadores são letras, números e _. Identificadores também não pode começar com números.

Em C ++ 03, as respostas dadas anteriormente estão corretos: eles são ilegais. Em C ++ 11 a situação alterados:

A resposta aqui é "Talvez" :
De acordo com §2.11 , identificadores podem consistir de dígitos e identificador-não- dígitos , começando com um dos últimos. identificador-não- dígitos são o a-z de costume, A-Z e sublinhado, além desde C ++ 11 que incluem universais caracteres nomes (por exemplo \uBEAF, \UC0FFEE32), e outros personagens definido pela implementação . Por isso, é implementação definida se estiver usando $ em um identificador é permitido. VC10 e suporta até que, versões talvez mais cedo, também. Ele até suporta identificadores como こんばんは.

Mas: eu não iria usá-los. Faça identificadores como legível e portátil quanto possível. $ é implementação definida e, portanto, não portátil.

Não legal, mas muitos se não a maioria dos compiladores apoiá-los, note que este pode depender de plataforma, assim gcc no braço não apoiá-los devido a restrições de montagem.

A seção relevante é "2.8 Identifiers [lex.name]". A partir do conjunto básico de caracteres, os caracteres válidos são A-Z a-z 0-9 e _. No entanto, os caracteres como E (U + 00E9) também são permitidos. Dependendo do seu compilador, você pode precisar entrar E como \ u00e9, no entanto.

Eles não são legais em C ++. No entanto, alguns C ++ C / derivado línguas (como Java e JavaScript) permitem-los.

ilegal. Eu acho que o cifrão e backtick são os únicos sinais de pontuação no meu teclado que não são usados ??em algum lugar C ++ (o sinal "%" é em cadeias de formato, que estão em C ++ por referência à norma C).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top