Does At symbol (@) and Dollar Sign ($) has any special meaning in C or C++

匆匆过客 提交于 2019-11-27 01:31:50

问题


Recently one of my friend encountered this question in an interview. The interviewer asked him if the special characters like $, @, |, ^, ~ have any usage in c or c++ and where.

I know that |, ^ and ~ are used as Bitwise OR, XOR and Complement respectively.

But I don't know if @ and $ has any special meaning. If it does, could you please give example where it can be applied?


回答1:


@ is generally invalid in C; it is not used for anything. It is used for various purposes by Objective-C, but that's a whole other kettle of fish.

$ is invalid as well, but many implementations allow it to appear in identifiers, just like a letter. (In these implementations, for instance, you could name a variable or function $$$ if you liked.) Even there, though, it doesn't have any special meaning.




回答2:


To complete the accepted answer, the @ can be used to specify the absolute address of a variable on embedded systems.

unsigned char buf[128]@0x2000;

Note this is a non-standard compiler extension.

Check out a good explanation here




回答3:


To complete the other answers. The C99-Standard in 5.2.1.3:

Both the basic source and basic execution character sets shall have the following members:

the 26 uppercase letters of the Latin alphabet

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

the 26 lowercase letters of the Latin alphabet

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

the 10 decimal digits

0 1 2 3 4 5 6 7 8 9

the following 29 graphic characters

! " # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { | } ~

All other characters maybe not even exist. (And should not be used)

But there is also this point in the Common extensions: Annex J, J.5.2:

Characters other than the underscore _, letters, and digits, that are not part of the basic source character set (such as the dollar sign $, or characters in national character sets) may appear in an identifier (6.4.2).

Which is basically what duskwuff already wrote.



来源:https://stackoverflow.com/questions/24114365/does-at-symbol-and-dollar-sign-has-any-special-meaning-in-c-or-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!