Keil uVision4 armcc: использование стандарта C ++ включает & lt; cstdint & gt;

Я использую Keil uVision4 для разработки на устройстве STM32F2.
Я пытаюсь использовать C ++, что должно быть возможно с помощью armcc (поправьте меня, если я ошибаюсь), поставляемого с набором инструментов uVision.
Но uVision отказывается принять стандартный способ включения C ++

    #include <cstdint>

не работает пока

    #include <stdint.h>

работает отлично.
Когда я открываю cstdint внутри uVision (щелчок правой кнопкой мыши, открытый документ), он открывает файл, но как общий файл, например, не как заголовочный файл, без причудливых цветов.

Что мне не хватает? Оба файла находятся в одной папке
C: \ Keil \ ARM \ ARMCC \ включают
и это не имеет никакого значения, заставляю ли я компилятор использовать c ++ (добавляя —cpp) или нет.
UVision просто не может принимать файлы без окончаний в качестве заголовочных файлов?

Изменить: В ответ на ответы (спасибо за ваше время!):
Сообщение об ошибке будет:

    #include <cstdint> and
#include <cstdint.h>
typedef uint32_t u32;
error: #20: identifier uint32_t is undefined

в то время как

    #include <stdint.h> and
#include <stdint>
typedef uint32_t u32;
and
#include <cstdint>
typedef std::uint32_t u32;
works perfectly.

который показывает, в чем проблема. Спасибо за помощь!

2

Решение

Какие симптомы у вас это не работает? То есть что такое сообщение об ошибке? Может быть, вам нужен только using namespace stdили префикс std :: перед всеми типами, так как cstdint заголовок помещает свои объявления в std Пространство имен.

Обратите внимание, что cstdint это очень новый заголовок, и может не поддерживаться вашим компилятором. Так что, возможно, вам придется согласиться на stdint.h, что так же хорошо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]