请教局部变量的问题
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调用的时候赋值了?
...
谢谢!
这句调用传入了BytesTransferred的地址,即可能在函数运行中改变了这个变量的值。一般来说想要多输出的函数都得这么干,或者采用引用 参考技术A BytesTransferred 已经在GetQueuedCompletionStatus调用时赋值了。 参考技术B GetQueuedCompletionStatus这个函数BytesTransferred
赋值
函数除了返回值外,也可以给参数赋值的
以上是关于请教局部变量的问题的主要内容,如果未能解决你的问题,请参考以下文章
C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)