c++ Primer学习笔记——第一章

1、由于嵌套包含文件的原因一个头文件可能会被多次包含在一个源文件中。条件指示符可防止这种头文件的重复处理例如
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
/* Bookstore.h 的内容 */
#endif

2、编译C++程序时编译器自动定义了一个预处理器名字__cplusplus(注意前面有两个下划线)。因此,我们可以根据它来判断该程序是否是C++程序,以便有条件地包含一些代码。例如:
#ifdef __cplusplus
// 不错我们要编译C++
// extern "C" 到第7 章再解释
extern "C"
#endif
int min( int, int );
在编译标准C 时编译器将自动定义名字__STDC__ 当然__cplusplus 与__STDC__不会同时被定义,另外两个比较有用的预定义名字是__LINE__和__FILE__。__LINE__记录文件已经被编译的行数,__FILE__包含正在被编译的文件的名字。可以这样使用它们

if ( element_count == 0 )
cerr << "Error: " << __FILE__
<< " : line " << __LINE__
<< "element_count must be non-zero.\n";

另外两个预定义名字分别包含当前被编译文件的编译时间__TIME__ 和日期__DATE__。

exp:

#include <iostream>

using namespace std;

int main()
{
	cout << "__cplusplus: " << __cplusplus << endl;
	cout << "File: " << __FILE__ << "; LINE: " << __LINE__ << endl;
	cout << "DATE: " << __DATE__ << "; TIME: " << __TIME__ << endl;
	return 0;
}

输出为

__cplusplus: 1
File: F:\C++ PROJECT\Proj01_01\proj01.cpp; LINE: 8
DATE: Jun  6 2012; TIME: 10:05:08
Press any key to continue
3、assert()是C 语台标准库中提供的一个通用预处理器宏。在代码中常利用assert()来判断一个必需的前提条件,以便程序能够正确执行。例如,假定我们要读入一个文本文件,并对其中的词进行排序,必需的前提条件是文件名已经提供给我们了,这样我们才能打开这个文件。为了使用assert(), 必须包含与之相关联的头文件:
#include <assert.h>
下面是一个简单的使用示例
assert( filename != 0 );
assert()将测试filename 不等于0 的条件是否满足。这表示,为了后面的程序能够正确执行,我们必须断言一个必需的前提条件。如果这个条件为假(即filename 等于0),断言失败,则程序将输出诊断消息,然后终止。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值