为什么我得到一个名称空间标识符错误

Why am I getting a namespace identifier error?

本文关键字:一个 空间 错误 标识符 为什么      更新时间:2023-10-16

我正在使用Keil uVision,我一直得到这个错误:

C:Keil_v5ARMARMCCbin..includerw/_defs.h(781): error:  #20:
    identifier "namespace" is undefined

什么会导致这个错误?命名空间不是自动定义的吗?

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

在c++中namespace是一个保留字,但在C中不是,所以编译器会尝试将其解释为标识符而不是关键字-这对C编译器来说当然是没有语法意义的。

你没有透露很多细节,但我的直觉是你在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链接