Mic*_*ael 1 c windows struct global
谁能解释一下这段代码中的编译错误:
#include "common.h"
typedef struct nodeData {
int procid;
unsigned short localport;
DWORD LIFETIME;
DWORD HELLOTIMEOUT;
DWORD MAXTIME;
} nodeData;
int listenerThread() {
if(!bindSocket(listenSocket,nodeData.localport)){
closesocket(listenSocket);
WSACleanup();
exit(-1);
}
// more code goes here
}
int main(int argc,char* argv[]) {
nodeData.localport = 5001;
// more code goes here
}
Run Code Online (Sandbox Code Playgroud)
我希望nodeData结构可用于我将创建的每个listenerThread.线程将一直操纵此nodeData结构(将使用互斥锁保护它).
所以我希望这个结构在全球范围内可用.我在哪里初始化它?我猜是主要的.
行中的编译错误
nodeData.localport = 5001;
Run Code Online (Sandbox Code Playgroud)
是
错误:非静态成员引用必须与特定对象相关
我在这里失踪了什么?
谢谢 !
nodeData是一种类型而不是变量 - 因为你typedef.尝试例如:
typedef struct nodeData_t {
int procid;
unsigned short localport;
DWORD LIFETIME;
DWORD HELLOTIMEOUT;
DWORD MAXTIME;
} nodeData;
nodeData MyNodeData;
Run Code Online (Sandbox Code Playgroud)
然后使用变量 MyNodeData
| 归档时间: |
|
| 查看次数: |
793 次 |
| 最近记录: |