recv函数手册中void buf[.size]语法里的.size参数含义是什么?
recv函数参数中
void buf[.size]的语法含义解释 这个是Linux man手册采用的文档专用语法,不属于标准C语言范畴,具体含义如下:
.size是用来明确标注:buf指向的缓冲区的预期长度,和第三个参数size的值是对应的,换句话说,调用recv时传入的buf缓冲区大小应该等于size参数指定的数值。- 从标准C的语法逻辑来看,
void buf[.size]本质上和void *buf完全等价——因为C语言中函数参数里的数组声明会自动退化为指针类型,这部分和你之前的猜测一致。 - 这种写法仅仅是手册用来直观说明参数间关联关系的文档手段,和编译器、函数的实际实现/链接无关,不存在为不同静态长度生成多个recv版本的情况,毕竟recv是预编译完成的系统库函数,链接时直接调用即可。
内容的提问来源于stack exchange,提问作者user2138149
相关产品推荐
相关产品推荐

