C语言深度解剖 -- 预处理

本文深入解析C语言的预处理,包括宏定义的多种用法,条件编译的实现,文件包含的操作,以及#error、#line、#pragma等预处理指令的作用和用例。此外,还介绍了"#"和"##"这两个特殊运算符在宏定义中的功能。
摘要由CSDN通过智能技术生成

1、LINE 表示正在编译的文件的行号,
2、FILE 表示正在编译的文件的名字,
3、DATE 表示编译时刻的日期字符串,
4、TIME 表示编译时刻的时间字符串,
5、STDC 判断该文件是不是定义成标准C程序。

一、宏定义

1、数值宏常量

#define PI 3.141592654
#define ERROR_POWEROFF  -1

2、字符串宏常量

#define ENG_PATH_1  E:\English\listen_to_this\listen_to_this_3

3、用define 宏定义注释符号“ ? ”

#define BSC //
#define BMC /*
#define EMC */
(D) BSC my single-line comment
(E) BMC my multi-line comment EMC

(D) 和 (E) 都是错误的 ,原因:注释先于预处理指令被处理,当这两行被展开成“ // … ” 或 “/ * … * /” 时,注释已经处理完毕,此时再出现“ // … ” 或 “/ * … * /”自然错误。因此,试图用宏开始或结束一段注释是不行的
4、用define 宏定义表达式
(1)使用宏定义表达式时,不要吝啬括号。
(2)宏函数被调用时,是以实参代换形参,而不是 “ 值传送 ”
5、宏定义中的空格

#define SUM (x) (x) 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值