【问题标题】:Trying to fix warning about ‘const’ qualifier尝试修复有关“const”限定符的警告
【发布时间】:2014-09-24 19:24:37
【问题描述】:

我一直在尝试使用 OpenSSL 检索安全网页。我有一个成功的程序,但它编译时出现以下警告:

warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]

为了理解问题,我将代码简化为以下代码,实现了相同的警告:

#include <openssl/ssl.h>

int main(void)
{
    SSL_METHOD *method;
    method = SSLv23_client_method();
}

似乎 SSL_METHOD 是一个声明为常量的结构。

有没有办法从声明中删除“const”键,这样这个错误就消失了?还是我必须确切地找出结构是由什么组成的,然后在没有 'const' 关键字的情况下重新创建它?

【问题讨论】:

  • 该错误意味着SSLv23_client_method 正在返回const SSL_METHOD *...
  • 所以我只需要将指针声明为 const。特维姆!!工作!

标签: c pointers struct openssl constants


【解决方案1】:

SSL_METHOD 需要一个常量类型:

    const SSL_METHOD *method;

将编译没有错误。参见man ssl 例如:

   const SSL_METHOD *SSLv2_client_method(void);
       Constructor for the SSLv2 SSL_METHOD structure for a dedicated client.

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多