为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第2天 C语言预处理和宏

标签:
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 的兴趣。
    图片描述
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消