首页 > 其他分享 >九.预处理命令

九.预处理命令

时间:2024-07-28 16:59:34浏览次数:9  
标签:定义 包含 编译 预处理 命令 FUNC 替换

        我们一般编辑程序的顺序为:编辑,预处理,编译,连接,运行。中间三个其实都是在我们gcc时系统会完成的操作。        

预处理包含:宏定义,文件包含,条件编译

一,宏定义

        在上一篇我们也提及到了一部分预处理的内容,其实预处理的本质就是无脑的文本替换;

因此会很容易出现bug,比如我们的宏的参数为2 + 3;在进行文本替换时会将所有的宏名替换为2 + 3;若有处为2 * 宏,我们想要的结果是2 * (2 + 3)为10,而往往结果却是无脑的文本替换为2 * 2 + 3为7,因此在定义宏时就加括号,越多越好。

(1)不带参宏

其中的标识符一般大写;有一种只有宏名,无内容的宏:#define K  用来为将来使用做准备。

(2)带参宏

注意:宏与函数的区别:宏在程序中直接展开,效率高;函数需要保护现场、恢复现场,效率不高,但复用性强。

二,文件包含

一个源文件将另一个源文件的内容包含起来,C语言中提供#include命令。

用尖括号包起来表示在/usr/include/目录下找;用双引号表示在现在的main.c所在的目录下找。

三,条件编译

                ​​​​​​​        ​​​​​​​        ​​​​​​​        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

其中else可省略,一般为避免一个头文件中由于多次包含,而导致的重复定义会使用#ifndef。

eg:#ifndef  _FUNC_H_

        #defind  _FUNC_H_

        #endid  _FUNC_H_

标签:定义,包含,编译,预处理,命令,FUNC,替换
From: https://blog.csdn.net/2401_84308772/article/details/140752604

相关文章

  • python第五节--conda命令
    这里写自定义目录标题基本命令环境管理包管理环境文件环境变量Conda配置高级操作常见问题基本命令检查Conda版本:conda--version更新Conda:condaupdateconda环境管理创建新环境:condacreate--namemyenv创建包含特定Python版本的新环境:conda......
  • Linux 中6种查看日志命令
    Linux查看日志的命令有多种:tail、cat、head、echo等,本文只介绍几种常用的方法。1、tailtail -n 10 test.log  查询日志尾部最后10行的日志;tail -n+10 test.log 查询10行之后的所有日志;tail -fn10 test.log  循环实时查看最后1000行记录(......
  • 掌握 IPython %%time 魔法命令:高效测量代码块执行时间
    引言在编程和数据分析中,了解代码的执行时间是优化性能的关键步骤。IPython,作为一个强大的交互式计算环境,提供了多种工具来帮助用户测量和优化代码。其中,%%time魔法命令是IPython中用来测量代码块执行时间的便捷工具。本文将详细介绍%%time魔法命令的使用方法,并通过一......
  • 探索 IPython 中的 %%javascript 魔法命令:运行 JavaScript 代码的秘籍
    引言IPython是一个强大的交互式计算环境,它不仅支持Python语言,还通过各种魔法命令扩展了其功能。其中,%%javascript魔法命令是IPython扩展中一个非常有趣的特性,它允许用户在IPython环境中直接运行JavaScript代码。这对于需要在数据科学和科学计算中使用JavaScript......
  • bash:pip:找不到命令
    我下载了pip并运行pythonsetup.pyinstall,一切正常。本教程的下一步是运行pipinstall<libyouwant>,但在它尝试在线查找任何内容之前,我收到错误“bash:pip:commandnotfound”。这是在MacOSX上。我假设当我运行setup.py时,某种路径设......
  • 【待做】【攻防技术系列+网络协议】SSH攻防一体命令备忘清单
    一、关于SSHSSH(缩写为“SecureShell”或“SecureSocketShell”)是一种网络协议,用于通过不安全的网络安全地访问网络服务。它包括实现SSH的一套实用工具,例如:ssh-keygen:用于为SSH创建新的身份验证密钥对;SCP(安全复制协议):用于在网络上的主机之间复制文件;SFTP(安全文件传输协......
  • 深度学习--数据预处理
    数据预处理importosimportpandasaspdimporttorch#创建csv文件os.makedirs(os.path.join('..','data'),exist_ok=True)data_file=os.path.join('..','data','house_tiny.csv')#往文件里写内容withopen(data_file,'w......
  • Linux 最常用命令!
    Linux最常用命令![点击下载文档]Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,And......
  • Linux: 更新系统相关依赖命令yum update执行失败: One of the configured repositorie
    环境:CentOS7(ISO映像文件=CentOS-7-x86_64-DVD-2009.iso)解决思路:系统repo镜像源连接问题导致执行失败,切换repo为国内源即可#切换仓库镜像源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo#或者wget-O/etc/yum.rep......
  • Python数据预处理+正态性检验+异常值处理+Q-Q图-K-S检验+相关性分析(2024MathorCup A题
    #数据预处理#正态性检验、Q-Q图、箱线图、直方图、相关性分析#Q-Q图importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.statsimportnormfromscipy.statsimportprobplota=pd.read_excel('附件1:小区基本信息.xlsx',engine='openpyxl'......