首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++primer遇到了有关问题

2012-08-16 
C++primer遇到了问题C++primer 第六章 6.14 使用预处理器进行调试这里有点不明白是什么意思,里面有一段程

C++primer遇到了问题
C++primer 第六章 6.14 使用预处理器进行调试
这里有点不明白是什么意思,里面有一段程序时这样的 习题6.25
#include <iostream>
#include <string>

using namespace std;

int main()
{
cout << "Enter some strings:" << endl;
string prestr,currenstr;
while( cin >> currenstr)
{
  #ifndef NDEBUG
cout << currenstr << " ";
  #endif
if(currenstr == prestr && isupper( currenstr[0] ) )
break;
else
prestr = currenstr;
}
//输出结果
if( currenstr == prestr && ! currenstr.empty() )
cout << "\nThe repeated string: " << currenstr << endl;
else
cout << "There is no repeated string! " << endl;

return 0;
}
其中说到分别在打开和关闭调试器的情况下编译和运行该程序
这里的打开和关闭调试器是什么意思呢?是怎样打开和关闭?我使用的是Visual Studio 2010
我先是“启动调试 按F5”,然后用另一种方式“开始执行(不调试) 按Ctrl+F5”,这样的两种方式是不是就是所谓的打开和关闭调试器编译运行程序?可是这两种方式得到的结果是一样的,这是为什么?请各位给点指导吧!

[解决办法]
#define NDEBUG
#ifndef NDEBUG
#endif

你把#define 给注释掉就是关闭了 你不注释就是打开
这里的意思应该是宏的使用
[解决办法]
就是DEBUG宏的控制,打开debug编译模式就自动定义了DEBUG宏,release就没有。就这么简单。
[解决办法]
就是DEBUG宏的控制,打开debug编译模式就自动定义了DEBUG宏,release就没有。就这么简单。
[解决办法]
预编译开关。楼主你懂的。
[解决办法]
既然看了C++ Primer,那你没仔细看宏的使用吗?
[解决办法]
在编译选项中的debug的宏定义里面加入“NDEBUG”。release不要加

热点排行
Bad Request.