我已经为结构中的字段分配了值。这导致了多个错误。
typedef struct t_queue {
int head = 0;
int tail = 0;
int maxSize = 0;
int size = 0;
SOCKET* queue = NULL;
}Queue;
typedef struct t_threadData {
int topicID;
bool isEngineActive = FALSE;
bool isServerActive = TRUE;
int numberOfConnectedSubs = 0;
Queue* queue;
HANDLE PublisherReady;
HANDLE ThreadReady;
HANDLE BarrierOK;
CRITICAL_SECTION Critical_Section;
int NumberOfThreadsWaiting = 0;
SOCKET sockets[NUMBER_OF_SUBSCRIBERS];
}ThreadData;
错误为:
E0065应为";">
E0020标识符";bool";是未定义的
我使用Visual Studio Enterprise 2017在Windows 10上使用C。
提前感谢您的帮助。
阅读现代C并查看此C参考。如果使用最新的GCC编译器进行编译,请使用gcc -Wall -Wextra -g
编译代码。还请阅读C编译器的文档,并启用其中的所有警告。还请阅读调试器(例如GDB(的文档
你应该编码:
typedef struct t_queue {
int head;
int tail;
int maxSize;
int size;
SOCKET* queue;
} Queue;
顺便说一句,你的域名很混乱。由于CCD_ 2和CCD_。那么它们应该是指针!
还可以考虑在您的项目中使用Clang静态分析器或Frama-C。
从一些现有的用C编码的开源软件的源代码中获得灵感(如Glib、GNU make、Linux内核、GNU guile等(