在下面的代码中 宏1 总是很好
但是,如果没有写入语句1, 宏2 无法正常工作......为什么会发生这种情况?
#include<iostream>
#include<conio.h>
//using namespace std; //--statement 1
#define l std::cout<< //--macro 1
#define nl std::cout<<endl; //--macro 2
int main(){
l "testing";
nl // this is not working if i dont use statement 1
l "a new line";
getch();
return 0;
}
当 语句1 未写入时 宏2 产生错误,指出&# 39; [错误] endl未在此范围内声明&#39;
如果cout<<
是std::cout<<
的简短版本,则不应发生此错误...我无法理解为什么会发生这种情况......
答案 0 :(得分:0)
这不是你的MACRO的问题。
endl对象也属于std命名空间,因此要么使用
std::cout << std::endl;
或
using namespace std;
cout << endl;