完整性实时操作系统多编译器

Integrity RTOS Multi Compiler

本文关键字:编译器 实时操作系统 完整性      更新时间:2023-10-16

在Windows中,我可以看到我从命名空间外部在命名空间中声明的任何变量,但是当涉及到Multi编译器时,它是如此严格,如果您在命名空间X中声明了一些变量,则必须仅在命名空间X中访问该变量,但我希望也从命名空间之外访问此变量。

是否有任何预处理器定义或任何方法可以做到这一点。这对我来说是必须的,我无法删除命名空间。

感谢

任何形式的帮助。

namespace X  
{
   int a = 5;
}
int b = a + 6;
result: a is undefined in multi compiler

GHS/Multi拒绝你的代码是正确的(例如,GCC也是如此(。
若要访问命名空间的成员,请使用范围解析运算符:

namespace X  
{
  int a = 5;
}
int main()
{
  int b = X::a + 6;
}

作为每次使用限定的替代方法:

namespace X  
{
  int a = 5;
}
using X::a; // In the global namespace, a now means X::a
int main()
{
  int b = a + 6; // Per the using-declaration, this is X::a
}