n 被定义了么?

EffectiveCpp 2004-11-19 06:26:38
#define n 0
#include <iostream>
using namespace std;
int main()
{
#if defined n
cout << "n be defined" << endl;
#endif
cout << n << endl;
cin.get();
}

n被系统定义了?把n换成其它的如c就可以.
而如果被定义了,我把第一行注释掉,为什么还有错?
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
daidodo 2004-11-20
  • 打赏
  • 举报
回复
Flood1984兄可能忘了吧,#ifdef和#ifndef只是#if defined和#if !defined的简写,工作方式是相同的。
Flood1984 2004-11-19
  • 打赏
  • 举报
回复
#if defined n 应写成:
#ifdef n
quieter 2004-11-19
  • 打赏
  • 举报
回复
主函数没有返回会值...........
oyljerry 2004-11-19
  • 打赏
  • 举报
回复
在dev c++中通不过
evilch 2004-11-19
  • 打赏
  • 举报
回复
靠连“#endif”都不写?
不及格!!
clin003 2004-11-19
  • 打赏
  • 举报
回复
楼上说的对

不过有一点 我这样写可以通过的


#define n 0
#include <iostream>
using namespace std;
void main()//楼主的返回类型为int 我改了 不过应该没有问题的 ……
{
#if defined n
cout << "n be defined" << endl;
#endif
cout << n << endl;
cin.get();
}


输出结果是:

F:\clin003\def\Debug>def.exe
n be defined
0


环境:win98 VC++6.0
xieshsh 2004-11-19
  • 打赏
  • 举报
回复
#ifdef n
....
#endif
应该这样子吧。
ekschencn 2004-11-19
  • 打赏
  • 举报
回复
#if defined n??用错宏了吧


#ifdef n 才对吧
BluntBlade 2004-11-19
  • 打赏
  • 举报
回复
#if defined(n) // ??
wanamaker 2004-11-19
  • 打赏
  • 举报
回复
? n被系统定义了?把n换成其它的如c就可以.
---> n 通常作为一些函数的参数名,iostream中也有函数用n作参数名,例:
void streambuf::gbump(int n)
{ _IO_file_flags & _IO_IN_BACKUP ? (_IO_save_base+=n):(_IO_read_ptr+=n);}
#define n 0 使这里编译错误。

?把第一行注释掉,为什么还有错
--->变量n 未定义

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧