2018 / 10
图片来源于网络
C语言入门到精通
公众号
闫小林
通常的目标是:书写一个像包含一个单独的函数调用语句的宏, 这意味着:调用者需要提供最终的分号,而宏体则不需要。因此宏体不能为简单的括弧包围的复合语句,因为如果这样,调用的时候就会发生语法错(明显是一个单独语句,但却多了一个分号)。
1
宏定义
#define TRUE 1
#define PI 3.14
#define MYNAME "Damon"
宏可以定义 整型 ,浮点型,字符型,字符串类型
_FILE_预处理常量
#include<stdio.h>
void main(void)
{
printf("Hello World!",_FILE_); //_FILE_就是文件名字
}
3
改变预处理器的行数
在C语言中提供了#line的预处理,准许用户改变当前行数,下面预处理器将行数定位于100行
#line 100
#line 1 "FILENAME.C"
chag_line.c说明了#line的用法
C语言入门到精通
参数个数可变的宏的书写
一般用一个单独的用括弧括起来的”参数“定义和调用宏,参数在宏扩展的时候成为类似printf()那样的函数的整个参数列表。
5
sizeof不能用于#if预编译器指令中,因为此时还未对类型名称作解析
m4工具是用于多用途的预处理器
比较宏与函数如果比较注重效率和速度,就用宏,如果比较在乎程序大小就用函数。
预定义的值和宏都在include的目录下
END
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有