c语言 soe存储程序,C语言中的宏和预处理器

C预处理程序不是编译器的一部分,而是编译过程中的单独步骤。简单来说,C预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行所需的预处理。我们将C预处理器称为CPP。

所有预处理器命令均以井号(#)开头。它必须是第一个非空白字符,并且为了可读性,预处理器指令应在第一列中开始。以下部分列出了所有重要的预处理器指令-序号指令与说明1#define

替代预处理器宏。

2#include

从另一个文件插入特定的标头。

3#undef取消

定义预处理程序宏。

4#ifdef

如果定义了此宏,则返回true。

5#ifndef

如果未定义此宏,则返回true。

6#if

测试编译时间条件是否为true。

7#else

#if的替代方法。

8#elif

#else和#if在一条语句中。

9#endif

结束预处理程序的条件。

10#error

在stderr上显示错误消息。

11#pragma

使用标准化方法向编译器发出特殊命令。

预处理器的一些例子-

分析以下示例以了解各种指令。#define MAX_ARRAY_LENGTH 20

该指令告诉CPP用20替换MAX_ARRAY_LENGTH的实例。对常量使用#define以提高可读性。#include 

#include "myheader.h"

这些指令告诉CPP从系统库获取stdio.h并将文本添加到当前源文件中。下一行告诉CPP从本地目录获取myheader.h并将内容添加到当前源文件中。#undef FILE_SIZE

#define FILE_SIZE 42

它告诉CPP取消定义现有的FILE_SIZE并将其定义为42。#ifndef MESSAGE

#define MESSAGE "你希望!"

#endif

它告诉CPP仅在尚未定义MESSAGE时定义MESSAGE。#ifdef DEBUG

/* Your debugging statements here */

#endif

如果定义了DEBUG,它将告诉CPP处理包含的语句。如果在编译时将-DDEBUG标志传递给gcc编译器,这将很有用。这将定义DEBUG,因此您可以在编译过程中即时打开和关闭调试。

预定义的宏-

ANSI C定义了许多宏。尽管每个宏都可用于编程,但是不应直接修改预定义的宏。序号宏和说明1__DATE__

当前日期,以“ MMM DD YYYY”格式的字符文字表示。

2__TIME__

当前时间,以“ HH:MM:SS”格式的字符文字表示。

3__FILE__

包含当前文件名作为字符串文字。

4__LINE__

包含当前行号作为十进制常数。

5__STDC__

编译器符合ANSI标准时定义为1。

示例#include 

int main() {

printf("File :%s\n", __FILE__ );

printf("Date :%s\n", __DATE__ );

printf("Time :%s\n", __TIME__ );

printf("Line :%d\n", __LINE__ );

printf("ANSI :%d\n", __STDC__ );

}

输出结果File :test.c

Date :Jun 2 2012

Time :03:36:24

Line :8

ANSI :1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值