【学习打卡】第2天 C语言预处理和宏
2022/8/6 3:52:45
本文主要是介绍【学习打卡】第2天 C语言预处理和宏,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:C语言系统化精讲 重塑编程思想 打造坚实的开发基础
课程章节:第五章 预处理和宏
授课老师:bennyhuo
课程内容
头文件包含
C语言的编译 可以理解为:
预处理 -> 编译 -> 链接
这一次学习预处理,本质上就是学习如何处理宏。
最显著的宏就是文件包含
#include <stdio.h>
本质就是把整个 stdio.h 中所有函数原型导入进来,所以你不进行这样的文件包含,自己把函数原型定义好,照样能够编译,而且程序运行也不会报错,如此所示:
int __cdecl puts(char const * ) //将此函数原型声明,其实现在标准库中,即可在不写 #include 的情况下,使用puts函数
。
类似的:
int __cdecl printf(const char *__restric__ _Format,...);
同样可以声明 printf 函数。
所以本质上引入头文件,本质上就是更方便的进行声明,其会在定义的地方进行宏展开,将所有的函数声明展开。
Ps:gcc -E
可以查看进行递归宏展开后的内容,对于复杂的宏定义,可以方便的查看具体数值。
自定义头文件
当我们想要自己写头文件,来更好地模块化编程,我们就可以编写自己的头文件。头文件*.h
中我们把函数主题写在如下框架内:
#ifndef XXXX #define XXXX int func() { //statements } #endif
而在使用方面,需使用 :
#include "*.h"
即可将函数引入,后方可使用。值得注意的是,使用双引号默认是相对于源文件的相对路径来搜索的。
而<*.h> 则不搜索相对路径,一般是工程指定的库文件路径。
而在 Clion 中使用CMake 编译的话需要将头文件的等信息进行修改,一般将 .c 引入即可。
而一般使用gcc 等联合编译即可。
课程收获
- 清楚地了解头文件包含,和自定义头文件等知识。
- 对于如# include 中,双引号和尖括号的区别有了仔细的区分。
- 知道了Cmake 中实用的方法,增加了对CMake 的兴趣。
这篇关于【学习打卡】第2天 C语言预处理和宏的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验