Почему я получаю ошибку идентификатора пространства имен?

Я использую Keil uVision и продолжаю получать эту ошибку:

C:\Keil_v5\ARM\ARMCC\bin\..\include\rw/_defs.h(781): error:  #20:
identifier "namespace" is undefined

Что может привести к этой ошибке? Разве пространство имен не определяется автоматически?

1

Решение

Похоже, вы используете компиляцию C для кода C ++ — проверьте параметры компилятора.

В C ++ namespace является зарезервированным словом, но не в C, поэтому компилятор попытается интерпретировать его как идентификатор а не ключевое слово — что, конечно, не имеет смысла синтаксически для компилятора Си.

3

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

Вы не раскрыли много деталей, но я догадываюсь, что вы используете компилятор C для своей программы C ++. В C. нет пространств имен

Я мог бы создавать похожие сообщения с этой программой:

namespace test {
}

Выход:

$ gcc test.c
test.c:1:1: error: unknown type name 'namespace'
namespace test {
^
test.c:1:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{
' token
namespace test {
^

Идеальная ссылка

2

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