现在的位置: 首页 > 综合 > 正文

关于c->c++过渡的一些小细节

2018年01月11日 ⁄ 综合 ⁄ 共 685字 ⁄ 字号 评论关闭

1头文件

传统的c,#include<stdio.h>

当然c++可以继续采用,但是以示区别#include<cstdio> using namespace std;

对于c++特有的#include<iostream.h>  也可以写成#include<iostream> using namespace std;

如果没有.h,则后面一定要添加using namespace std;名字空间,它使得c++定义集被封装在独立的名字空间中,及时有同名的情况也不会发生冲突。

using 这个关键字 使得c++标准库都封装在一个名字空间中,,而后续的std,打开std名字空间,使它所有的名字都可用。

2关于调式。

第一种,预处理方式

在代码前。如果是多个文件,.h中声明

#define _DEBUG

在需要调式的代码中

#ifdef _DEBUG

  printf();

#endif

如果不需要这段调式代码,可以修改宏#define 为#undef _DEBUG   这里有个禁区,不要使用NDEBUG这是c的保留字

第二种,我们采用的仍然是宏定义

#define p(x) cout<<#x"="<<x<<"\n";

这里的#会把x当做字符数组处理,类似于cout<<"x="<<x<<"\n";

第三种,我们使用assert()宏

这里需要添加#include<cassert>

int i=100;

assert(i!=100); 里面的语句是i!=100,但是我们明明i=100,因此会提示有错误。程序执行到该句会停止下来。

如果不需要这个功能,记住在#include<cassert>之前加入#define NDEBUG 这里可以使用NDEBUG

抱歉!评论已关闭.