Ошибка компилятора при использовании структуры - PullRequest
0 голосов
/ 18 июля 2011

Я получаю странную ошибку компилятора при инициализации структуры.

#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' или ' attribute ' before '.'токен
testserver.c: 16: 9: ошибка: ожидается '=', ',', ';', 'asm' или ' атрибут ' перед '.'токен
testserver.c: 17: 9: ошибка: ожидается '=', ',', ';', 'asm' или ' атрибут ' перед '.'токен
testserver.c: 18: 9: ошибка: ожидается '=', ',', ';', 'asm' или ' атрибут ' перед '.'токен

Почему я получаю эту ошибку?

Ответы [ 2 ]

9 голосов
/ 18 июля 2011
sendData.az = 25;

Такие выражения должны быть внутри функции.Если вы хотите инициализировать структуру, для этого есть другой синтаксис:

struct RadarData sendData = { 25, 10, 1, 100 };
3 голосов
/ 18 июля 2011

Если я смотрю на ваш код правильно (и это полный соответствующий код), то вы помещаете операторы вне функции.Это не правильно.

...