试图修复关于'const'限定符的警告

时间:2014-09-24 19:24:37

标签: c pointers struct openssl const

我一直在尝试使用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'关键字的情况下重新创建它?

1 个答案:

答案 0 :(得分:4)

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.