【问题标题】:What is the meaning of "1ULL"in c programming language [duplicate]c编程语言中的“1ULL”是什么意思[重复]
【发布时间】:2013-07-22 19:23:38
【问题描述】:
for (x = 0; x < 1ULL<<(2*length); ++x){

上面这行是我下载的一个c程序代码。它有一个部分“1ULL”。首先我认为这是一个错误。但是代码可以编译并且运行良好。谁能解释一下那是什么意思。

谢谢……

【问题讨论】:

  • 无符号长长ULL后缀
  • 谁支持这个???
  • @H2CO3:例如,我是。仅仅因为答案很容易在谷歌上搜索到,并不意味着这是一个糟糕的问题。
  • @H2CO3:请注意,与链接的“重复”不同,此处代码中后缀的使用很重要并且可能需要(例如,如果 int 是 32 位,则代码会出现故障,如果前缀被省略,length 可以是 16 或更大)。
  • 作为 C 的新手(更熟悉 Python),我不知道这个“1ULL”表达式是数字文字和类型后缀的组合。从视觉上看,它看起来更像“NULL”而不是“1”。这个问题的具体形式对我有帮助;搜索时未显示标记的重复项。

标签: c


【解决方案1】:

后缀ULL 为整数表示类型说明符。这意味着

unsigned long long

您可能还想阅读thisthis one 了解更多详情。

【讨论】:

    【解决方案2】:

    这些字母修改文字 1 并使其成为 unsigned long long 类型。

    这在 C99 (ISO/IEC 9899) §6.4.4.1 整数常量中有所介绍:

    integer-suffix:
    unsigned-suffix long-suffixopt
    unsigned-suffix long-long-suffix
    long-suffix unsigned-suffixopt
    long-long-suffix unsigned-suffixopt
    unsigned-suffix: one of
    u U
    long-suffix: one of
    l L
    long-long-suffix: one of
    ll LL
    

    【讨论】:

    • 我已经给你们所有人投票了,但我认为答案是不完整的,直到你们不知道它的可用性。
    • 例如sizeof(1) != sizeof(1ULL)
    • 这是正确解决11ULL 中的唯一答案。赞成。
    【解决方案3】:

    这是一种向编译器发出信号,表明该值必须被视为unsigned long long

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 2020-06-29
      • 1970-01-01
      • 2016-02-20
      • 2022-01-08
      • 2022-01-05
      • 2011-03-03
      • 2011-01-14
      • 2020-10-30
      相关资源
      最近更新 更多