标识符名称中的数字是否有问题?

时间:2012-12-20 17:51:09

标签: java c++ c syntax defensive-programming

因为在 C \ C ++ \ Java -

int 2a ; //invalid suffix "a" on integer constant

变体名称的其余部分的数字是否有问题,尽管它是有效的语法?

喜欢 -

int num1 ;
int num_1st ;
int num_2nd ; 

6 个答案:

答案 0 :(得分:8)

我从来没有听说任何人(例如,任何编码标准/指南)在标识符中有数字问题。尽管如此,其中有太多可以表示向量或数组可能更受欢迎 - 即使只有两个,您的num_1stnum_2nd可能会更好{{1} }。

答案 1 :(得分:5)

标识符不能以数字开头。它必须以字母或下划线开头。

答案 2 :(得分:1)

变量标识符必须以字母或下划线开头,但其余字符可以是字母,下划线或数字。

您甚至可以对变量进行decalre: int _ = 0;

或者,如果您熟悉正则表达式,可将其图案化为: “[1 - ZA-Z _] \ W *?\ B”

\ w *?部分不是必须的。

答案 3 :(得分:0)

答案是,标识符名称的其余部分中的数字没有任何问题。

答案 4 :(得分:0)

只要变量名称有意义,使用数字作为名称的一部分绝对不是一件坏事。当然,拥有大量类似命名的变量,最后只有一个数字来区分它们可能是糟糕设计的标志。

我非常肯定,不允许使用数字开头的标识符的原因是它使得编写解析器变得更加容易:

c = getchar(); 
ungetc(c);
if (isdigit(c)) 
   token = number(); 
else 
   token = identifier(); 

答案 5 :(得分:0)

这是规则关闭标识符,它必须以字母或下划线开头,之后只允许数字。