C语言预处理及特殊函数介绍(extern/exit/atexit/volatile/static/calloc/realloc等)PART ONE

本文详细介绍了C语言预处理的一些关键概念,包括#include命令的不同形式,条件编译的使用,如#define、ifdef、ifndef等结构,以及#error和#pragma指令的作用。此外,还讲解了#和##运算符的功能,输入输出重定向,以及全局变量和static关键字在多源文件程序中的应用。
摘要由CSDN通过智能技术生成

1).#include 预处理命令

#include 命令有如下两种形式:

#include <filename>
#include "filename"


它们的差别在于查找欲包含文件的起始位置不同。

用引号括起来:预处理程序就会从待编译文件所在待编译目录里开始查找欲包含的文件,这种方法通常用于包含程序员定义的头文件。

用<>:用于标准函数库的头文件,预处理程序就会按照一种依赖于系统实现的方式,通常是在预先指定的编译器和系统目录中进行查找。


2).条件编译

条件编译使用户能够控制预处理命令的执行以及对程序代码的编译。每一个条件预处理命令都要计算一个整型常量表达式的值。但是类型强转表达式、sizeof表达式及枚举常量的值不能再预处理命令中计算。

如下代码:

#if !defined(MY_CONSTANT)
#define MY_CONSTANT 0
#endif


首先判断MY_CONSTANT是否被定义了。如果定义了,则表达式defined(MY_CONSTANT)的值为1,否则为0.如果该表达式的值为0,则!defined(MY_CONSTANT)的值久为1,于是就定义MY_CONSTANT,否则#define预处理命令就被略过。

每个#if结构都以#endif来结束。预处理命令#ifdef和#ifndef是#if defined(name)和#if !defined(name)的缩写形式。对于多分枝的条件预处理结构,需使用命令#elif(等价于if语句中的else if)和#else(等价于if语句中的else&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值