文章目录
预处理之文件包含
预处理之宏定义

预处理 - 无参宏
宏定义,又称为宏替换,自定义一个宏(要符合标识符的命名规则),用于替换任意数据、标识符或者表达式。
无参宏定义
定义无参宏的基本格式:#define 宏名 宏替换
注意:不能给宏定义的常量赋值
注意:预处理做替换是没有计算功能的,宏名约定俗称都是大写

- 优点:一改全改


带参数宏定义
带参宏定义
定义带参宏的基本格式:#define 宏名(参数表) 宏替换
注意:
宏定义是替换,其在替换完成前并不会计算。
宏定义尽量用大写,使其在程序中容易辨别区分。

宏定义的优缺点
优点:
- 方便程序修改
- 提高程序的运行效率:使用带参函数可完成部分函数调用的功能,既减少了系统开销,又提高了运行效率。
缺点:
- 缺少检测机制(缺少检测机制是因为在预处理过程中不会去判断语法错误,只有在程序编译时才会去判断语法错误)
预处理之文件包含
文件包含的基本格式:
包含系统头文件用<>,只会在系统头文件中找
包含自定义头文件用"",在自定义头文件中找不到就会在系统头文件中找
注意:文件包含允许嵌套,即在一个被包含文件中可以包含其它文件。
演示过程:
头文件的嵌套包含可能会引起头文件的重复包含,从而出现函数重定义,而宏定义语句可以防止头文件重复包含。
#pragma once 是一种预处理指令,用于确保头文件只被编译一次,以防止重复包含。
-
我们先创建一个头文件
tool1.h,并在文件中写入内容

-
并在
文件包含.c文件中导入使用

-
我们再创建一个
tool2.h的头文件,并写入内容 -
注意:因为
tool1.h中已包含了#include<stdio.h>,所以在tool2.h中就不用再写入,可直接使用printf()

-
这时再在
文件包含.c中运行,发现报错

最低0.47元/天 解锁文章
1047

被折叠的 条评论
为什么被折叠?



