【问题标题】:parenthesis after variable name is valid or not in C programming?变量名后的括号在C编程中是否有效?
【发布时间】:2016-12-09 06:08:55
【问题描述】:

我只是尝试在 C 中创建带括号“n_()”的变量,但它不起作用,它给了我错误。有人可以告诉我其中的问题。

【问题讨论】:

  • 您可以编写括号,但它们会将“变量”转换为(非原型)函数声明。它们永远不会成为 C 中标识符的一部分。

标签: c variables declaration variable-declaration


【解决方案1】:

在 C 中,int n_(); 声明了一个返回 int 的函数,而不是一个变量。 () 不是,也不能是标识符名称的一部分。

【讨论】:

    【解决方案2】:

    如果您在标准中看到标识符的定义,您就会明白。

    identifier:
       identifier-nondigit
       identifier identifier-nondigit
       identifier digit
    
    identifier-nondigit:
       nondigit
       universal-character-name
       other implementation-defined characters
    
     nondigit: one of
        _abcdefghijklm
        nopqrstuvwxyz
        ABCDEFGHIJKLM
        NOPQRSTUVWXYZ
    
    digit: one of
        0123456789
    

    标识符只能以 nondigit 中的值开头,并且以 nondigit 和 digit 中的值作为元素

    abc, a1234, __abc, ab_c 都是有效的标识符。

    1abc, abc+, abc(, ab-c, 不是有效的标识符。

    附: universal-character-name 定义如下

    universal-character-name:
       \u hex-quad
       \U hex-quad hex-quad
    
    hex-quad:
        hexadecimal-digit hexadecimal-digit
        hexadecimal-digit hexadecimal-digit
    

    它们用于指代不在基本字符集中的字符。例如\u0024 ($), \u0040 (@)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2015-06-22
      • 2011-04-28
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多