[英]Error With c Macro expansion
嗨,请找到以下简单的宏代码
#include <iostream>
#define INCL #include
INCL <stdlib.h>
int main()
{
std::cout << "Hello, world\n" << std::endl ;
return 0;
}
当我编译代码时,它将引发错误:程序中出现流浪“#”
请帮忙。
谢谢
预处理器宏无法创建其他预处理器宏。 您在这方面很不走运。
但是,您可以使用宏作为include参数:
#define FOO(x) "/usr/lib/" #x
#include FOO(mylib.h)
C ++构建包括以下阶段:
关键是您尝试使用预处理器(第1阶段)对其本身进行预处理,这将无法正常工作。 宏只能用于为编译器生成代码。 您不能将预处理器指令包装到预处理器宏中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.