【 C 】预处理指令

举报
李锐博恩 发表于 2021/07/16 00:15:03 2021/07/16
【摘要】 写在前面: 关于C,已经学了多年了,可是总是没有实际的用途,所以总是被其他的事情耽搁,这样的话,很多相关知识点也就忘却了。到了现在这个阶段,逐渐发现C的重要性了,DSP以及很多方面都需要用到它,以及即将到来的找工作,C几乎是一门必备的技能了,所以今天重新捡起来,但不会像以前那样了,找一本基础书本,按部就班的学习,我要摒弃这种方式了,而是每天通过查找资料,最少更新一个知识点。...

写在前面:

关于C,已经学了多年了,可是总是没有实际的用途,所以总是被其他的事情耽搁,这样的话,很多相关知识点也就忘却了。到了现在这个阶段,逐渐发现C的重要性了,DSP以及很多方面都需要用到它,以及即将到来的找工作,C几乎是一门必备的技能了,所以今天重新捡起来,但不会像以前那样了,找一本基础书本,按部就班的学习,我要摒弃这种方式了,而是每天通过查找资料,最少更新一个知识点。

以前学习,由于没有记笔记,导致除了脑海中有的一点记忆,其他都没了,所以,记笔记,在我看来,至关重要,至少以后想回忆,直接看自己的笔记就好了,这毕竟是自己的学习轨迹,没必要从头开始了。从头开始是一件很打击的事情。


这篇博文,简单的介绍一下C语言中的预处理指令(部分),对预处理指令做出一个初步的了解:


  
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX_COLS 20
  5. #define MAX_INPUT 1000

以上面这几行代码为例,这些都是预处理指令(preprocessor directives),因为它们是由预处理器(preprocessor)解释的。

预处理器读入源代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。

在上面的例子程序中,预处理器用名叫 stdio.h 的库函数头文件的内容替换第1条 #include指令语句,其结果就仿佛是 stdio.h的内容被逐字写到源文件的那个位置。第2,3条指令的功能类似。


stdio.h头文件使我们可以访问标准I/O库(Standard I/O Library)中的函数,这组函数用于执行输入和输出。

进一步了解这个头文件,点这个链接:

C 标准库 - <stdio.h>


stdlib.h是C标准库,关于这个头文件的介绍,下面这个链接可以满足基本需求。

C 标准库 - <stdlib.h>


string.h头文件提供的函数用来操纵字符串,进一步了解,见下面的链接:

C 标准库 - <string.h>


有用的技巧:

如果你有一些声明需要用于几个不同的源文件,这个技巧也是一种方便的方法:你在一个单独的文件中编写这些声明,然后用#include指令把这个文件包含到需要使用这些声明的源文件中,这样,你就系需要这些声明的一份拷贝,用不着许多不同的地方进行复制,避免了在维护这些代码时,出现错误的可能性。


另一种预处理指令就是 #define,如:

#define    MAX_COLS 20
#define    MAX_INPUT 1000

它把名字 MAX_COLS 定义为 20,把名字 MAX_INPUT 定义为1000. 当这个名字出现在源文件的任何地方时,它就会被替换为定义的值。由于它们被定义为字面值常亮,所以这些名字不能出现于有些普通变量可以出现的场合(比如赋值符的左边)。

这些名字一般大写,用于提醒它们并非普通的变量。

#define 指令和其他语言中符号常亮的作用类似,其出发点也相同。如果以后你觉得20列不够,你就可以简单地修改 MAX_COLS 的定义,这样你就用不着在整个程序中到处寻找并修改所有表示列范围的20,你有可能漏掉一个,也可能把并非用于表示列范围的20也修改掉了,这些都是致命性的。

 

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/82049047

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。