Неизвестное имя типа 'uint8_t', MinGW

Я получаю "неизвестное имя типа" uint8_t ", а другим - с помощью C в MinGW. Любые идеи, как это решить?

Ответ 1

Попробуйте включить stdint.h или inttypes.h.

Ответ 2

Чтобы использовать псевдоним типа uint8_t, вы должны включить стандартный заголовок stdint.h.

Ответ 3

Вам нужно #include stdint.h ПЕРЕД вам #include любые другие интерфейсы библиотеки, которые в этом нуждаются.

Пример:

В моей ЖК-библиотеке используются типы uint8_t. Я написал свою библиотеку с интерфейсом (Display.h) и реализацией (Display.c)

В display.c у меня есть следующие варианты.

#include <stdint.h>
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>

И это работает.

Однако, если я повторно упорядочу их так:

#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
#include <stdint.h>

Я получаю сообщение об ошибке. Это связано с тем, что Display.h нуждается в вещах от stdint.h, но не может получить к нему доступ, потому что эта информация скомпилирована ПОСЛЕ отображения Display.h.

Итак, переместите stdint.h над любой библиотекой, которая в ней нуждается, и вы больше не должны получать ошибку.