为什么我收到命名空间标识符错误?

时间:2014-06-30 10:54:15

标签: c++ namespaces embedded keil rogue-wave

我正在使用Keil uVision并且我一直收到此错误:

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

什么可能导致此错误?是不是自动定义了命名空间?

2 个答案:

答案 0 :(得分:3)

看起来您正在使用C ++编译C ++代码 - 检查编译器选项。

在C ++中namespace是一个保留字,但不在C中,因此编译器会尝试将其解释为标识符而不是关键字 - 这当然会成为语法上对C编译器有意义。

答案 1 :(得分:2)

您没有公开许多细节,但我的预感是您使用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 {
            ^

Ideone link