我在初始化结构时遇到奇怪的编译器错误。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
struct RadarData
{
unsigned int messageID : 32;
unsigned int time : 32;
float az;
float el;
};
struct RadarData sendData;
sendData.az = 25;
sendData.el = 10;
sendData.messageID = 1;
sendData.time = 100;
根据一些不同的教程,这看起来很好,但是在两台不同的机器上,我在编译时遇到以下错误:
testserver.c:15:9:错误:在“。”之前预期'=',',',';','asm'或'属性'。 testserver.c:16:9:错误:在'。'标记之前预期'=',',',';','asm'或'属性' testserver.c:17:9:错误:在'。'标记之前预期'=',',',';','asm'或'属性' testserver.c:18:9:错误:在'。'标记之前预期'=',',',';','asm'或'属性'令牌
为什么我收到此错误?
答案 0 :(得分:9)
sendData.az = 25;
这样的陈述必须在函数内部。如果要初始化结构,则有不同的语法:
struct RadarData sendData = { 25, 10, 1, 100 };
答案 1 :(得分:3)
如果我正确地查看您的代码(这是完整的相关代码),那么您将语句置于函数之外。那不对。