写在前面:

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

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


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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define    MAX_COLS 20
#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也修改掉了,这些都是致命性的。

【 C 】预处理指令相关推荐

  1. 【C语言】07-预处理指令;-宏定义

    预处理指令简介; 1,C在对源程序进行编译之前,会对一些特殊的预处理指令作解释,产生一个新的源程序,此过程叫做编译预处理.C在经过编译预处理之后才对新的源码进行通常的编译; 2,预处理以'#'开头,且 ...

  2. java预处理指令region_VS #region

    1.C# 预处理指令 #region使您得以在使用Visual Studio代码编辑器的大纲显示功能时指定可展开或折叠的代码块.    #region   name    其中:name      希 ...

  3. 预处理指令的开始和结束

    文章目录 1 空白字符 2 预处理指令的开始和结束 1 空白字符 要想搞清楚预处理指令的开始和结束,首先得搞清楚空白字符的概念. 空白字符是以下字符的统称 : 空格符 --> \x20(注意:空 ...

  4. C/C++常见的预处理指令

    本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下 ...

  5. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)

    iOS开发 -- C语言基础12(预处理指令) 宏定义 预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源 ...

  6. c语言中预处理指令的作用,C语言中常用预处理指令

    转载自 https://blog.csdn.net/farsight2009/article/details/58602886 姓名:张艳博 学号:17021223249 [嵌牛导读]: C语言中常用 ...

  7. C++ #pragma comment语法(预处理指令)

    #pragma comment的使用方法 pragma预处理指令详解 后更

  8. C#中的预处理指令详解

    这篇文章主要介绍了C#中的预处理指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregion ...

  9. pragma comment的使用 pragma预处理指令详解

    pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注 ...

最新文章

  1. spring根据名称获取bean_带你从零开始手写 spring ioc 框架,深入学习 spring 源码
  2. IT团队之非正式沟通
  3. dos下批量卸载apk文件
  4. 一款功能强大,可扩展端到端加密反向Shell的工具
  5. 一文读懂HttpServletRequest
  6. zs040蓝牙模块使用方法_三菱CCLINK-IE网络模块使用方法
  7. WordPress的nocache header生成原理
  8. MFC的sendmessage和postmessage 以及sendmessagetimeout
  9. java手动回收_浅谈java是如何做资源回收补救的
  10. html如何实现字体逐个输入,HTML – 如何将字体真棒图标插入文本输入?
  11. linux 内核任务调度,Linux任务调度
  12. 简易实践的vue自定义tab入门
  13. 凤凰网php,凤凰网房产频道招聘 web 前端工程师、PHP 工程师 15-25k,欢迎简历来砸~...
  14. 如何安装故障恢复控制台
  15. 数电篮球电子计分器设计
  16. 2021牛客寒假算法基础集训营1(A B C D E F H I J)
  17. 目前主流手机操作系统介绍-手机平台
  18. 中英文输入法的自动切换 (转)
  19. GPS北斗定位模块应用实现汽车风控管理
  20. 2013深圳IT领袖峰会,中国互联网三巨头的三大掌柜分别演讲,讲述互联网的未来很有深意丶

热门文章

  1. mysql error104528000_腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)...
  2. js小数运算出现多为小数问题_JS操作小数运算,结果莫名其妙出现多位小数问题...
  3. franze kafka 游戏_The Franz Kafka Videogame
  4. selenium 操作 html 5,[Selenium] WebDriver 操作 HTML5 中的 video
  5. 列名无效怎么解决_电脑win键失效怎么办? 键盘win键无效的解决办法
  6. mysql galaxy_优化mysql
  7. assign深拷贝_经典前端面试题: Object.assign 是浅拷贝还是深拷贝?实现深拷贝的方法有哪些?...
  8. mysql中lock_mysql中的锁lock
  9. mysql hibernate 延迟_Hibernate+Spring数据延迟加载问题解决方案
  10. 需要单机还是集群部署_5000W如何玩转Filecoin市场 部署最符合企业的集群模式