【发布时间】:2013-10-04 10:12:57
【问题描述】:
所以,我正在阅读 Beej 的网络编程指南,他使用了这个功能:
void *get_in_addr(struct sockaddr *sa)
{
if (sa->sa_family == AF_INET) {
return &(((struct sockaddr_in*)sa)->sin_addr);
}
所以,我知道它在做什么。我无法理解的是函数声明中的 * 到底在做什么。此外,这个函数似乎正在返回一个内存位置,但它是无效的。这是怎么回事?
【问题讨论】:
-
这样写有帮助吗:
void* get_in_addr(struct sockaddr *sa) -
不好笑,但是如果没有 C 的基本了解,网络编程将会非常困难。
-
@PaulGriffiths 我听到了。我实际上对 C/C++ 有相当好的理解,只是我以前从未遇到过这种语法。我知道我的知识有漏洞,但是,嘿,我在学校。现在是填补空白的时候了,而不是说“哦,我不知道,所以我什至不应该尝试”。非常感谢您的意见。
-
@Nick:好的。指针对于 C 语言来说非常非常重要。祝你学业顺利。
标签: c++ c function-pointers