2017-09-08 3 views
-6

Je suis un nouveau bie à C++. J'ai trouvé la déclaration suivante dans un C++ livre: « Dans tout programme C++, un nom de variable commence par une lettre et ne contient que des lettres, des chiffres et underscores.The suivants sont le nom ne varie pas: »

2x    // a name must start with a letter 
time$to$market // $ is not a letter, digit, or underscore 
Start menu  // space is not a letter, digit, or underscore 

La question est pourquoi time$to$market n'est pas nom de variable? J'ai essayé de le compiler et le compilateur ne s'est pas plaint, malgré qu'il devrait se plaindre?

+0

nous ne pouvons pas utiliser le nom de variable $ sign, seul le caractère de soulignement est autorisé, parmi les caractères spéciaux –

+3

GCC (et peut-être d'autres) a une extension qui permet d'entrer des identificateurs $ $. – Quentin

+1

mec, lettre signifie 'a-z' et' A-Z'. chiffre signifie «0-9». le soulignement signifie '_'. – Yves

Répondre

1

I tried to use it and the compiler did not give error.

Il suffit de ne pas le faire, même si votre compilateur actuel prend en charge (comme Quentin souligne dans un commentaire). Ce n'est pas dans la norme, donc votre code ne sera pas portable vers d'autres environnements, ou même vers le même compilateur utilisant un standard différent (essayez les options GCC -ansi, -std=c++11etc.). Le mieux que vous pouvez faire est que vous obtenez une erreur sur la compilation, le pire est un comportement indéfini que vous chercherez après de nombreuses heures.

1

Il existe différentes variantes de compilateurs. On peut compiler plus rapidement, on peut différer avec certains paramètres par défaut pour certaines raisons. Je ne sais pas quel compilateur vous utilisez. Mais si vous faites un peu reaserch sur votre compilateur, vous verrez que $ est autorisé. Essayez de compiler avec un compilateur différent pour rattraper exactement votre livre. Vérifiez cette rubrique pour voir ce que signifie pure C++. Parce que les livres enseignent habituellement le langage pur.

What is pure C++

0

Son dépend totalement du complier que vous utilisez, comme j'utilise dans 4,5 TC il montre cette erreur:

Compiling DEMO.C:

Illegal character '$' (0x24)

Certains compilateur peut supporter.