c - 试图修复有关 ‘const’ 限定符的警告

标签 c pointers struct openssl constants

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

最佳答案

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.

关于c - 试图修复有关 ‘const’ 限定符的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024864/

相关文章:

c - 如何将结构显式对齐为 4 个字节

c++ - 为什么 fread 提前到达 EOF?

C++ Pop函数链表

c - 在C中创建和理解结构的链接列表

c# 嵌套结构中的数组

c - 如何计算结构中数据成员的大小?

无法在 firefox 插件中使用 ctypes.open 打开库(错误 126)

c - 字符串说明符( %d 、 %f 等...)

c - 为什么仅分配指针的字符串复制函数不起作用?

c - 我动态分配的结构体指针数组有什么问题?