Identificateurs

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Présentation des tokens - Index

Voici la définition formelle d'un identificateur :

identificateur :

  • identificateur-nonchiffre
  • identificateur identificateur-nonchiffre
  • identificateur chiffre

identificateur identificateur-nonchiffre :

  • nonchiffre
  • nom-caractère-universel (Unicode)
  • autres caractères définis par l'implémentation


nonchiffre : un parmi

  • 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

chiffre : un parmi

  • 0 1 2 3 4 5 6 7 8 9

Restrictions de choix et de longueur des noms

Les identificateurs sont des noms arbitraires de n'importe quelle longueur donnés aux classes, aux objets, aux fonctions, aux variables, aux types de données définis par l'utilisateur, etc. Les identificateurs peuvent contenir tous les caractères (incluant ASCII et Unicode), le caractère de soulignement "_" et les chiffres de 0 à 9. Tous les caractères d'un identificateur sont significatifs.

  • Le premier caractère d'un identificateur doit être une lettre ou un caractère de soulignement.
  • Par défaut, le compilateur reconnaît tous les caractères comme significatifs. Le nombre de caractères significatifs peut être réduit, mais non augmenté, par une option de menu ou de la ligne de commande. Pour changer la longueur de caractère significative, définissez la longueur que vous désirez dans Projet > Options > Compilateur C++ > Avancées > Longueur d'identificateur.

Les caractères Unicode d'un identificateur nom-caractère-universel, doit avoir un encodage dans ISO 10646 qui tombe dans une des portées spécifiées dans l'annexe A de TR 10176:2003. Les portées sont spécifiées pour Latin, Greek, Cyrillic, Armenian, Hebrew, Arabic, Syriac, Thaana, Devanagari, Bengali, anGurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar, Georgian, Ethiopic, Cherokee, syllabaires autochtones canadiens, Ogham, Runic, Khmer, Mongolian, Hiragana, Katakana, Bopomofo, idéogrammes unifiés CJK, Yi, Hangul, chiffres et caractères spéciaux.

Sensibilité à la casse

Les identificateurs en C et en C++ sont sensibles à la casse, de sorte que Sum, sum et suM sont des identificateurs distincts.

Les identificateurs globaux importés depuis d'autres modules suivent les mêmes règles quant aux noms et aux caractères significatifs. Cependant, une option permet de suspendre la sensibilité à la casse pour assurer la compatibilité avec des langues insensibles à la casse. Avec l'option "insensible à la casse", les identificateurs globaux Sum et sum sont considérés comme identiques, et l'avertissement "Symbole dupliqué" risque d'apparaître durant la liaison.

Une exception à ces règles est que les identificateurs de type __pascal sont toujours convertis en majuscules avant la liaison.

Unicité et portée

Bien que les noms d'identificateurs soient arbitraires (mais toujours conformes aux règles énoncées ci-dessus), des erreurs apparaissent si le même nom est utilisé pour plusieurs identificateurs de même portée et partageant le même espace de nommage. La duplication des noms est légale pour des espaces de nommage différents, indépendamment des règles de portée.

Voir aussi