VC++ #ifdef无效?

朔北冥 学生  2017-09-08 09:35:45

#define LOCAL
#include "stdafx.h"
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
#ifdef LOCAL
cout << "*******LOCAL" << endl;
#endif

//freopen("in.txt", "r", stdin);

printf("hello world\n");

return 0;

}


输出效果:
...全文
128 点赞 收藏 8
写回复
8 条回复
baidu_37097818 2017年09月09日
编译器会从#include "stdafx.h"开始编译,之前的内容不会生效
回复 点赞
paschen 2017年09月09日
要把#define LOCAL放到#include "stdafx.h"之后才可以!
回复 点赞
AlbertS 2017年09月08日
把LOCAL放到main函数上面,紧挨着,担心是其他文件把这个宏隐藏了, 或者你也可以重命名一下,改成LOCAL_TEST
回复 点赞
赵4老师 2017年09月08日
VS IDE中,在LOCAL上点鼠标右键,选转到定义或查找所有引用。
回复 点赞
whut_lcy 2017年09月08日
只有一种可能:其他某个地方把LOCAL给undef了。要么是其他头文件,要么是IDE的某个设置 如果是其他头文件(看你的代码,也只有stdafx.h有可能了,其他的标准库头文件不可能出现,我本地GCC和vs2010,2017都没问题),就是2,3楼的解决办法 如果是IDE,看看你的vs设置
回复 点赞
jena_wy 2017年09月08日
#define LOCAL 放到#include <iostream>后面就正常了。
回复 点赞
呔妖怪来嘛 2017年09月08日
把#define放到#ifdef上边,rebuild all
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告