Где живёт uint32_t?

Начал писать заголовочные файлы для SmartFusion. Работа предполагается в SoftConsole. Есть несколько поименованных областей памяти, с которыми надо будет работать. Описаны они примерно следующим образом:

typedef struct
{
volatile uint32_t    TSW[16];
volatile uint32_t    SA[30][16];
}MKORX_TypeDef;

#define        MKORX_BASE        (0x40050000)
#define        MKORX            ((MKORX_TypeDef *) MKORX_BASE)

Дальнейшее использование, соответственно, стандартным образом: MKORX->SA[4][2] = 0xDEADBEEF;

Дык вот здесь есть малюсенькая такая тонкость, которая заключается в том, что тип uint32_t описан в файле stdint.h и его надо хотя бы единожды в проект включить. Иначе, возникает ошибка компилятора, которая в принципе не гуглится и по этому описанию понять – а в чём собственно ошибка? – не получится:

expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘TSW’

Указатель ошибки показывает почему-то на название переменной, а не на то, что перед ней тип данных неопределен. Вообще-то, в этом случае должна возникать ошибка на отсутствие зарезервированного слова и предварительного описания типа. Очень хочется кого-нибудь стукнуть за это.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>