请教局部变量的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教局部变量的问题相关的知识,希望对你有一定的参考价值。

定义了几个局部变量
DWORD BytesTransferred;
LPPER_HANDLE_DATA PerHandleData;
LPPER_IO_OPERATION_DATA PerIoData;
DWORD SendBytes,RecvBytes;
DWORD Flags;
while(TRUE)

if(GetQueuedCompletionStatus(CompletionPort,&BytesTransferred, (LPDWORD)&PerHandleData,(LPOVERLAPPED)&PerIoData,INFINITE)==0)

return 0;

if(BytesTransferred==0)//这里BytesTransferred也没有赋值怎么就判断了?是不是在函数GetQueuedCompletionStatus调用的时候赋值了?
...

谢谢!

if(GetQueuedCompletionStatus(CompletionPort,&BytesTransferred, (LPDWORD)&PerHandleData,(LPOVERLAPPED)&PerIoData,INFINITE)==0)
这句调用传入了BytesTransferred的地址,即可能在函数运行中改变了这个变量的值。一般来说想要多输出的函数都得这么干,或者采用引用
参考技术A BytesTransferred 已经在GetQueuedCompletionStatus调用时赋值了。 参考技术B GetQueuedCompletionStatus这个函数BytesTransferred
赋值
函数除了返回值外,也可以给参数赋值的

以上是关于请教局部变量的问题的主要内容,如果未能解决你的问题,请参考以下文章

js中局部变量和全局变量的问题

C语言中,局部变量和全局变量的问题

局部内部类访问局部变量的问题

C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)

C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)

Java中成员变量局部变量局部内部类局部内部类方法作用域问题。