Duk*_*ade 8 c++ initialization winsock
我正在处理一些静态分析缺陷,并且导致我出现问题的是这个缺陷.
SOCKADDR_IN m_stLclAddr;
Run Code Online (Sandbox Code Playgroud)
缺陷是说我没有初始化以下内容:
我对熟悉WinSock API并不是很熟悉,但我做了一些研究,我只是想知道以下代码行是否会使用默认值初始化m_stLclAddr?
m_stLclAddr = { 0 };
Run Code Online (Sandbox Code Playgroud)
m_stLclAddr = {0}将第一次将所有内容设置为零(不一定是默认值或您实际想要做的事情). memset(&m_stLclAddr, 0, sizeof(SOCKADDR_IN));将m_stLclAddr中的所有内容设置为零,不仅用于初始化,还用于连续调用.
我想你会想做这样的事情:
local_sin.sin_family = AF_INET;
local_sin.sin_port = htons (PORTNUM);
local_sin.sin_addr.s_addr = htonl (INADDR_ANY);
Run Code Online (Sandbox Code Playgroud)
如下所示:http://msdn.microsoft.com/en-us/library/aa454002.aspx