在 C 中,为结构内部的字段分配值会导致"expected a ';'"错误



我已经为结构中的字段分配了值。这导致了多个错误。

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;

错误为:

  1. E0065应为";">

  2. 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等(

相关内容

  • 没有找到相关文章

最新更新