带有“__P”的Socket.hBSP头
int绑定__P(int,const *,socklen_t)
你能告诉我“__P”在这里是什么意思吗?非常感谢!
发布于 2020-11-30 03:49:29
这是一个便携的黑客。K&R C( ANSI和ISO标准化之前的版本)没有在括号中声明带有类型和命名参数的函数。因此,这一声明必须是关于K&R C的:
int bind();在标准C上:
int bind(int, const struct sockaddr *, socklen_t);__P宏旨在掩盖这些差异,并允许编译器根据指定标准C的__STDC__宏的存在来生成适当的原型。
请注意,C是由ANSI在1989年和ISO在1990年标准化,并经历了几次修订,从那时起,最显著的是在1999年和2011年。不太可能有人仍然在现代系统上使用K&R C编译器,因为对于许多体系结构来说,他们在操作系统中的支持只出现在支持标准C的编译器中。而且,大多数人都在使用在过去30年中升级或构建的系统。
然而,一些非常老的软件可能是用K&R C编写的,因此,这种技术允许这样的代码工作。然而,这种代码的生命周期是有限的,因为最新版本的GCC和clang不再支持K&R C,所以找到一个旧编译器可能很棘手。
https://stackoverflow.com/questions/65067564
复制相似问题