【问题标题】:In C, is '==' ever used in variable assignment?在 C 语言中,'==' 是否曾用于变量赋值?
【发布时间】:2019-03-15 16:00:41
【问题描述】:

今天正在使用一些 SASL 代码,并注意到下面的 sn-p 中的 ==。我不是 C 专家,但我使用该运算符的唯一方法是测试相等性。漏洞?

    if ( !conn ) {
        rc == LDAP_SUCCESS;
        goto done;
}

【问题讨论】:

  • 可能是一个错误。
  • 这是一个错误。此代码没有理由存在。虽然,为了完整地回答这个问题,运算符== 可以用于赋值,例如int success = (rc == LDAP_SUCCESS)
  • 如果您实际编译代码,您会看到警告。将警告视为错误 - 你有你的错误。 :)
  • rc == LDAP_SUCCESS; 是 NOP。
  • 注意:不要盲目地将rc == LDAP_SUCCESS替换为rc = LDAP_SUCCESS(这可能会删除警告),但要检查rcdone标签后的使用情况并采取相应措施。

标签: c syntax


【解决方案1】:

那句话什么也没做。这是一个错误。

现在,您可以将 (rc == LDAP_SUCCESS) 分配给一个变量,该变量将存储该操作的布尔结果(如果为真,则为 1,如果为假,则为 0)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多