- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在结构中有一个 void * 值,我需要通过套接字将它发送到服务器。我知道我需要使用
int value = htonl(kv->value);
编译器报错
passing argument 1 of ‘htonl’ makes integer from pointer without a cast [-Werror]
我还尝试将 void * 转换为 int,但没有用,我使用了
htonl(*kv->value);
但这也引发了错误。如何让 void * 成为正确的数据类型?
旁注:结构不可编辑,因为我正在编写框架。
struct kvpair {
void *value;
};
最佳答案
您不能直接取消引用 void *
类型,您必须先将其转换为可以取消引用和取消引用的对象。
例如
uint32_t value = htonl(*(uint32_t *) kv->value);
此转换和取消引用要求 kv->value
实际上指向您尝试将其转换为的类型。如果在您的代码中,kv->value
指向单个 short
值,则上述转换和取消引用将导致未定义的行为。
关于从 void * 转换为使用 htonl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36896452/
变量“值”是 uint32_t value = htonl(value); printf("after htonl is %ld\n\n",value); This prin
对于 AJAX 请求,我需要发送一个魔数(Magic Number)作为请求正文的前四个字节,最高有效字节在前,以及请求正文中的其他几个(非常量)值。 JavaScript 中是否有等同于 htonl
我有一个简单的问题。这段代码: int t = 1; int y = htonl(t); printf("Y = %d, sizeof(int)=%d", y, sizeof(int
我想通过套接字发送一个字符串,但不得不担心字节顺序。我知道如何解决这个问题的唯一方法是使用 htonl,但据我所知,它只适用于字符串。如何通过套接字发送字符串? 最佳答案 我认为您不必为字符串做任何事
// something proxyRequest(setRequestFormat(request), respondBuffer, gethostbyname(hostname.c_str(
我在结构中有一个 void * 值,我需要通过套接字将它发送到服务器。我知道我需要使用 int value = htonl(kv->value); 编译器报错 passing argument 1 o
我有包含以下元素的结构。此外,结构已完全填充。 typedef struct { uint16_t a; uint16_t b; uint8_t c; uint8_t
我正在尝试新的 C++ 套接字编程。我在理解 htons、htonl 和相关函数的功能时遇到了一些困难。我阅读了一些文档,但我的问题如下, 对于单个服务器和单个客户端,我在两端都使用 htons 作为
编辑:老实说,我不知道错误发生在哪里,所以我只添加大部分相关代码,不确定这是否有帮助 所以基本上我有两个基本的服务器和客户端进程。用户指定命令,客户端进程将消息长度发送给服务器,服务器执行命令并返回响
我们正在编写嵌入式应用程序代码并验证有效 IPv4 格式的字符串。我可以使用字符串分词器成功地做到这一点,但现在我需要使用 htonl() 函数将整数转换为主机到网络顺序。 因为它是一个嵌入式应用
这个问题在这里已经有了答案: Comma in C/C++ macro (8 个答案) 关闭 4 年前。 这是一个在编译时返回的异常错误,只有一些编译器参数。 使用 g++ -std=c++11 -
__builtin_bswap32() 用于反转字节(它用于 littel/big endian 问题(来自 gcc))。 htonl() 也用于反转字节(从主机到网络的转换)。 我检查了这两个函数,
我正在学习简单的套接字程序并遇到了这些,我想知道 htons 和 htonl 之间有什么区别,甚至 ntohs 和恩托尔。 最佳答案 htons 主机到网络短 ntohs 网络托管短片 htonl主机
我正在绑定(bind)到内核模块中的套接字。我从另一个套接字获取字符串格式的 IP。我应该如何将此 IP 传递给 htonl()。我尝试将其类型转换为(long int)。但是,显然它不会起作用。 如
cout << "Hello World !" << endl; 我在堆栈溢出上的第一篇文章:我们什么时候应该使用htonl函数?我已经浏览了手册页。但是,我真的不明白何时以及如何使用它。 最佳答案
我正在尝试使用 unix 套接字来测试将一些 udp 数据包发送到本地主机。 据我了解,在设置 ip 地址和端口以发送数据包时,我会将转换为网络字节顺序的值填充到我的 sockaddr_in 中。我在
我想在我的 ruby c 扩展中使用 htonl 函数,但不想使用它附带的任何其他互联网内容。 #include 中最简约但仍可移植的文件是什么?查看我计算机上的头文件,我可以看到 machine
我尝试在 Swift 中使用 htonl() 设置整数字节序,但编译器找不到 htonl() 方法。 我一直用这个作为引用:Append NSInteger to NSMutableData 这是我的
当我查找 htonl 的示例时,它总是返回一个 uint32_t。但是,当我使用 Winsock2.h 在 VS2015 中调用 htonl 时,它返回一个 u_long。 在我的机器上,当我为 32
我有如下定义: #define LOCALHOST 2130706433 在使用 sockaddr_in 时,我正在尝试更正网络/主机字节顺序: struct sockaddr_
我是一名优秀的程序员,十分优秀!