完成其他答案。www.example.com中的C99标准5.2.1.3: 基本源字符集和基本执行字符集均应包含以下成员: 拉丁字母表中的26个大写字母 A B C D E F G H I J K L MN O P Q R S T U V W X Y Z 拉丁字母表中的26个小写字母 a b c d e f g h i j k l mn o p q r s t u v w x y z 十位十进制数 0 1 2 3 4 5 6 7 8 9 以下29个图形字符 ! " # % & ' ( ) * + , - . / :; < = > ? [ \ ] ^ _ { | } ~ 其他的角色可能根本就不存在。(不得使用) 但在通用扩展中也有这一点:附录J,J.5.2: 除下划线_、字母和数字以外的不属于基本源字符集的字符(如美元符号$或国家字符集中的字符)可以出现在标识符中(6.4.2)。 这基本上是duskwuff已经写过的。
3条答案
按热度按时间gkl3eglg1#
@
在C中一般是无效的;它不用于任何东西。它被Objective-C用于各种目的,但这是另一回事。$
也是无效的,但许多实现允许它出现在标识符中,就像字母一样。(例如,在这些实现中,如果您喜欢,可以将变量或函数命名为$$$
。)即使在那里,它也没有任何特殊意义。6yt4nkrj2#
要完成接受的答案,
@
可用于指定嵌入式系统上变量的绝对地址。注意这是一个非标准的编译器扩展。
查看一个很好的解释here
f0ofjuux3#
完成其他答案。www.example.com中的C99标准5.2.1.3:
基本源字符集和基本执行字符集均应包含以下成员:
拉丁字母表中的26个大写字母
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
拉丁字母表中的26个小写字母
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
十位十进制数
0 1 2 3 4 5 6 7 8 9
以下29个图形字符
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
其他的角色可能根本就不存在。(不得使用)
但在通用扩展中也有这一点:附录J,J.5.2:
除下划线_、字母和数字以外的不属于基本源字符集的字符(如美元符号$或国家字符集中的字符)可以出现在标识符中(6.4.2)。
这基本上是duskwuff已经写过的。