我问我自己,我能不能使用带严格混叠的BSD套接字,而不通过与gcc一起编译而得到未定义的行为?
bind(sdListen, (struct sockaddr*)&sockaddr_inIdentifier, sizeof(sockaddr_inIdentifier))据我所知,这一行代码违反了严格的混叠规则( gcc也给了我同样的警告)。那么,是否有计划b,在O3模式下使用套接字而不严格执行?当然也不违反规矩?还是必须有一个可以在所有系统/编译器上运行的套接字系统?
发布于 2013-08-01 08:19:03
该行中的演员本身并没有违反严格的混叠规则。只有在没有将指针转换回正确类型的情况下,bind()的实现才会破坏该规则。
任何严格的混叠问题都是bind()实现者的问题,而不是用户的问题。
https://stackoverflow.com/questions/17988496
复制相似问题