我有一个名为 header1.h 的文件,其代码如下
#include "string.h"
namespace custom1
{
#define MYMACRO(f, z) strrchr(f, z)
}
但现在我收到gcc的编译错误,如
OtherHeader.h错误:没有“strrchr”的参数 取决于模板参数,因此必须声明“strrchr” 可用[-fpermissive]
为什么“string.h”包含不可见?另一个文件可以执行此操作
namespace custom1
{
is MYMACRO visibile here?
}
为什么我收到了依赖错误?
答案 0 :(得分:1)
预处理器宏没有命名空间的概念,它们总是进行“全局文本处理”。
答案 1 :(得分:0)
strrchr函数的签名是
char *strrchr(const char *s, int c);
所以我认为你只是错过了一个论点。