商标查询网站建设网站添加后台

web/2025/9/30 16:19:22/文章来源:
商标查询网站建设,网站添加后台,程序外包网,建设工程行业招工信息网站相关代码gitee自取#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期#xff1a; 学C的第三十三天【C语言文件操作】_高高的胖子的博客-CSDN博客 1 . 程序的翻译环境和执行环境 在ANSI C(C语言标准)的任何一种实现中#xff0c;存在两个不同的环境。 #xff0… 相关代码gitee自取 C语言学习日记: 加油努力 (gitee.com) 接上期 学C的第三十三天【C语言文件操作】_高高的胖子的博客-CSDN博客 1 . 程序的翻译环境和执行环境 在ANSI C(C语言标准)的任何一种实现中存在两个不同的环境。                 1. 翻译环境              在这个环境中源代码被转换为可执行的机器指令                    计算机能够执行二进制指令 但我们平常写的C语言代码是文本信息计算机不能直接执行 在翻译环境就可以把C语言代码源代码翻译为二进制指令可执行的机器指令                                            2. 执行环境                    在这个环境下可以执行二进制的代码实际执行代码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 . 翻译环境 翻译环境包括 编译 和 链接 编译又包括 预编译(预处理) 、编译、汇编                  1. 翻译环境下的 编译 和 链接                       组成一个程序的每个源文件通过编译过程各自进行编译分别转换成目标代码object code。         每个目标文件由链接器linker捆绑在一起形成一个单一而完整的可执行程序。              链接器同时也会引入标准C函数库中任何被该程序所用到的函数而且它可以搜索程序员个人的程序库将其需要的函数也链接到程序中。                     图解                                            2. 编译的几个阶段                      在VS这种集成开发环境下不方便观察编译各阶段细节 在Linux系统下使用gcc编译器更好观察                                   2.1. 预编译(预处理) 阶段                   生成文件后缀 xxx.i 该阶段会进行一些文本操作                             包括 注释的删除#include 头文件的包含#define 符号的替换所有预处理指令都是在预处理阶段处理的               图解                                       2.2. 编译阶段                   生成文件后缀 xxx.s 该阶段会把C语言代码翻译为汇编指令                               包括 语法分析词法分析语义分析符号分析                图解                                     2.3. 汇编阶段                   生成文件后缀 xxx.o  object目标文件 该阶段会将编译阶段完成的汇编指令翻译为二进制指令              在编译阶段会进行符号汇总 该阶段则会形成对应的符号表 以便链接时使用                图解                                          3. 链接               对编译生成的目标文件进行操作 生成可执行程序也是二进制文件                             包括 合并段表符号表由编译的汇编阶段形成的合并和符号表的重定位                图解 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 . 预处理详解 1. 预定义符号                    C语言中预定义了一些符号这些预定义符号都是语言内置的 __FILE__             ----          进行编译的源文件__LINE__             ----          文件当前的行号 __DATE__             ----          文件被编译的日期 __TIME__             ----          文件被编译的时间 __STDC__        ----        如果编译器遵循ANSI C(C语言标准)其值为1否则未定义                 示例                                            2. #define                     2.1. #define 定义标识符                  写法 #define name stuff                     name -- 定义的标识符名称stuff -- 定义的标识符内容 示例                                               在define定义标识符的时候最好不要在最后加上“分号 ;” 因为有些编译器可能会把“分号”也当作stuff标识符的内容 示例                                         2.2. #define 定义宏                  写法 #define name( parament-list ) stuff                     name -- 定义的宏的名称parament-list -- 参数列表参数会替换放到 stuff 中stuff -- 定义的宏的内容                 注意 定义宏时 参数列表的左括号必须与name紧邻。 如果两者之间有任何空白存在 参数列表就会被解释为stuff的一部分。           示例                      注意 用于对数值表达式进行求值的宏定义都应该用上图这种方式加上括号 即对stuff中的各个参数分别加上括号 和 对stuff整体加上括号 避免在使用宏时由于参数中的操作符或邻近操作符之间不可预料的相互作用 操作符优先级问题。                                         2.3. #define 替换规则                  在程序中扩展#define定义符号和宏时需要涉及几个步骤 在调用宏时首先对参数进行检查看看是否包含任何由#define定义的符号。 参数列表中有其它#define定义的符号如果是它们首先被替换。                  替换文本随后被插入到程序中原来文本的位置。参数列表替换stuff中的内容对于宏参数名被他们的值所替换。              最后再次对结果文件进行扫描看看它是否包含任何由#define定义的符号。如果是就重复上述处理过程。                   注意 宏参数和#define 定义中可以出现其他#define定义的符号。 但是对于宏不能出现递归。和函数的区别当预处理器搜索#define定义的符号的时候字符串常量的内容并不被搜索。                           示例                                       2.4. # 和 ##                 # 和 ## 这两个符号只能在宏里面使用                        #                    该符号可以把宏的参数以字符串的形式插入到字符串中                    示例                  ##                 ##可以把位于它两边的符号合成一个符号。 它允许宏定义从分离的文本片段创建标识符。               注意 这样的连接必须产生一个合法的标识符。否则其结果就是未定义的。           示例                                         2.5. 带副作用的宏参数                       当宏参数在宏的定义中出现超过一次的时候如果参数带有副作用 那么你在使用这个宏的时候就可能出现危险导致不可预测的后果。 副作用就是表达式求值的时候出现的永久性效果。             示例                                         2.6. 宏和函数对比                  属 性#define定义宏函数 代 码 长 度 每次使用时宏代码都会被插入到程序中。 除了非常小的宏之外程序的长度会大幅度增长 函数代码只出现于一个地方每次使用这个函数时都调用那个地方的同一份代码 执 行 速 度 更快存在函数的调用和返回的额外开 销所以相对慢一些操作符 优先级宏参数的求值是在所有周围表达式的上下文环境里 除非加上括号否则邻近操作符的优先级可能会产生 不可预料的后果所以建议宏在书写的时候多些括 号。函数参数只在函数调用的时候求值一次它的结果值传递给函数。表达式的求值结果更容易预测。带有副 作用的 参数参数可能被替换到宏体中的多个位置所以带有副作 用的参数求值可能会产生不可预料的结果。函数参数只在传参的时候求值一 次结果更容易控制。 参 数 类 型 宏的参数与类型无关只要对参数的操作是合法的 它就可以使用于任何参数类型。函数的参数是与类型有关的如果参数的类型不同就需要不同的函数即使他们执行的任务是相同的。调 试宏是不方便调试的函数是可以逐语句调试的递 归宏是不能递归的函数是可以递归的                                         2.7. 命名约定                       一般来讲函数和宏的使用语法很相似所以语言本身没法帮我们区分二者。 所以我们从书写上进行区分 宏名全部大写函数名不要全部大写                                            3. #undef                  这个指令用于移除一个宏定义移除之后不能再使用                  写法 #undef NAMENAME                     NAME  --  要移除的宏的名字 示例                                            4. 命令行定义                  许多C的编译器提供了一种能力允许在命令行中定义符号用于启动编译过程 VS不行gcc可以               例如 当我们根据同一个源文件要编译出一个程序的不同版本的时候这个特性会有点用处。 假定某个程序中声明了一个某个长度的数组如果机器内存有限 我们需要一个很小的数组但是另外一个机器内存大些我们需要一个数组能够大些。 这时候就可以用命令行定义灵活调整                示例                                            5. 条件编译                   使用条件编译指令可以决定一条一组语句是否进行编译 实现选择性的编译 条件编译指令如果为真则编译时内容保留 条件编译指令如果为假则编译时内容删除                         常见的条件编译指令                   指令一单个分支的条件编译 #if  常量表达式                         //一条一组语句...                               #endif                                       //常量表达式由预处理器求值。 示例                                   指令二多个分支的条件编译 #if 常量表达式//...#elif 常量表达式//...#else//...#endif 示例                                   指令三判断是否被定义的条件编译 //如果定义过#if defined(symbol) //第一种写法#ifdef symbol //第二种写法//如果未定义过#if !defined(symbol) //第一种写法#ifndef symbol //第二种写法//symbol -- 定义的符号 示例                                   指令四嵌套指令                 将上面的三种条件编译组合使用            示例                                            6. 文件包含                          #include指令 可以使另外一个文件被编译。 就像它实际出现于 #include指令 的地方一样。 这种替换的方式很简单 预处理器先删除这条指令并用包含文件的内容替换。 这样一个源文件被包含10次那就实际被编译10次。                                       头文件被包含的方式              本地文件包含 写法 #include filename                 查找策略 先在源文件所在目录下查找如果该头文件未找到 编译器就像查找库函数头文件一样在标准位置查找头文件。 如果找不到就提示编译错误。                                       库文件包含 写法 #include filename.h                 查找策略 查找头文件直接去标准路径下去查找 如果找不到就提示编译错误。                                       嵌套文件包含                     如果一个文件有很多头文件 另一个文件包含了该文件同时该文件也有头文件 再有一个文件包含这两个头文件 那么同一个头文件就有可能重复出现在一个文件中             可以使用条件编译来防止头文件重复出现 //每个头文件的开头写#ifndef __TEST_H__#define __TEST_H__//头文件的内容#endif //__TEST_H__//或者#pragma once//头文件的内容 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 . 运行环境 程序执行的过程              1. 程序必须载入内存中 在有操作系统的环境中程序载入内存一般这个由操作系统完成。 在独立的环境中程序的载入必须由手工安排 也可能是通过可执行代码置入只读内存来完成。                                   2. 程序的执行开始接着便调用main函数。                               3. 开始执行程序代码 这个时候程序将使用一个运行时堆栈stack函数栈帧 存储函数的局部变量和返回地址。 程序同时也可以使用静态static内存 存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。                             4. 终止程序 正常终止main函数也有可能是意外终止。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows2012iis网站默认设置wordpress博客 知乎

实现效果 DAC输出的电压 同过电压表测量电压 1.DAC配置的步骤 初始化DAC时钟。配置DAC的GPIO端口。设置DAC的工作模式(例如,是否使用触发功能,是否启用DAC中断等)。启动DAC。 2常用的函数 函数 HAL_DAC_Start() - 开启指定…

网上如何建网站卖量具网站建设外包公司招聘

目录 二、从回归到线性分类模型:分类 3.分类模型损失函数推导——极大似然估计法 (1)二分类损失函数——极大似然估计 (2)多分类损失函数——极大似然估计 4.模型损失函数推导新视角——交叉熵 (1&#x…

用typecho做的网站提供网站建设哪家好

目录 1.对真实值类别编码:2.预测值:3.目标函数要求:4.使用Softmax模型将输出置信度Oi计算转换为输出匹配概率y^i:5.使用交叉熵作为损失函数:6.代码实现: 1.对真实值类别编码: y为真实值&#xf…

桂林网站优化公司企业品牌类网站有哪些

doi:10.11884/HPLPB202335.230026 大视场中的目标丢失后需要再次检测,但是大视场的检测比较耗时。但是根据实验发现丢失目标通常发生在无人机运动区域的320x320范围内,所以设计辅助网络,当目标丢失后,以320x320区域图像…

二手车网站模板建设做营销的网站推广

Pandas 是数据科学社区中使用最广泛的库之一,它是一个强大的工具,可以进行数据操作、清理和分析。 本文将提供最常用的 Pandas 函数以及如何实际使用它们的样例。我们将涵盖从基本数据操作到高级数据分析技术的所有内容,到本文结束时&#xf…

长兴县建设管理网站免费注册企业网站

原题地址 解法一 排序贪心即可。思想为先计算出每一个怪兽到达城市的时间,然后排序,有小到大进行消灭,此时的下标可视作时间。当怪兽到达城市的时间超过或等于当前时间时,即已经到达了城市,游戏失败,下标…

创建众筹网站舟山市建设工程质量监督站网站

题目列表 3079. 求出加密整数的和 3080. 执行操作标记数组中的元素 3081. 替换字符串中的问号使分数最小 3082. 求出所有子序列的能量和 一、求出加密整数的和 按照题目要求,直接模拟即可,代码如下 class Solution { public:int sumOfEncryptedInt…

企业建站的作用是什么wordpress元素

需求任意输入3个整数,对这3个整数由小到大进行排序,并将排序后的结果输出。源码// // author: 冲哥 // date: 2021/5/7 13:37 // description: 实现对这3个整数由小到大进行排序 #include int main() {int num1, num2, num3, temp;printf("请输入3个…

ui设计工资怎么样优化wordpress访问速度

流水账日记(哈哈) 今天没课,早上好好的睡了个懒觉(虽然还是很困- -); 哥几个把昨天买的排骨洗了做了个排骨汤,虽然不如家里做的好吃,但对此时的我们来说已经是美味了,晚…

做网站推广怎么跟客户沟通新乡建设网站公司

近年来,我们见证了数据可视化软件呈现出明显的免费化趋势。这个趋势的背后隐藏着许多关键原因,影响着整个数据行业的发展和走向。为何数据可视化软件开始朝着免费方向发展?让我们一同深入探讨。 普及数字化需求: 数字化已经深入到…

Asp.net网站开发分析互联网保险发展现状分析

昨天参加了华为南研所校招的机试,一共三道题,第一题很简单,输入一个字符串格式的日期,年-月,输出该月有多少天,主要注意闰年((%40&&%100!0)||%4000&a…

天津建站模板搭建dedecms网站地图修改

BIOS误删win10引导 delete boot option如何恢复 其他系统也可以用来参考,解决只是将原来的配置加回去而已 倒了血霉 说个原则,希望大家在发现错误之后第一时间是保护现场不要乱动,如果在百度或别的地方找到了解决方案,先百度一下这个解决方案是否可行,不然不要轻易尝试,这些解决…

长湖南营销型网站自己做网站的流程视频教程

要进入美国与欧洲市场,均需要通过评定程序审批。 两者的审批流程核心区别在于:所有在美国上市流通的医疗器械产品必须经过FDA的审核认证,才能投放市场。而欧盟市场,医疗器械制造商只需要自证设备合规性,并有指定机构干…

导航类网站模板idc数据中心排名

文章目录 第一步、注册与登录第二步、本地部署 在个人网站部署的助手vercel,支持 Github部署,只需简单操作,即可发布,方便快捷! 第一步、注册与登录 进入vercel【官网】,在右上角 login on,可登…

药企网站怎么做营销网站设计实验

使用Python可视化有压缩格式的Bitmap BMP图像调色板数据 参考文章一、调色板数据二、测试代码三、测试结果 参考文章 有压缩格式的Bitmap(BMP)图像显示调色板数据和图像数据Bitmap(BMP)图像信息分析主要说明带压缩的形式Bitmap(BMP)图像信息验证 一、调色板数据 Color Palette…

网站流量30g做外贸方面的网站

微信小程序可以使用wx.navigateToMiniProgram方法实现跳转到其他小程序,但是跳转到网页需要使用wx.navigateTo方法,并将所跳转的地址写在URL参数中。 例如,跳转到百度的网页可以使用以下代码: wx.navigateTo({url: https://www.…

怎样网站建设电商设计公司

PDF文件是经常会被用到,它在我们的日常生活和工作中扮演着重要的角色。PDF文件合并是将多个PDF文件合并为单个文件,这个过程通常是为了方便管理多个PDF文件,或者将多个PDF文件合并为一个整体以便于共享或打印。既然如此,如何快速合…

南通单位网站建设公司在线网站制作系统

计算机组成原理试题B答案 (3页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分计算机组成原理试题B答案一、 选择题1. D 2. A 3. A,C 4. B 5. B 6. B 7. B 8. B 9. A 10. D二、 填…

网站备案 超链接手机平面设计软件

前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: 51单片机入门教程-2…

网站链接设计百度下载app

1. Ubuntu20.04环境中设置自启动应用程序后,加载QtWebEngine模块的程序会出现崩溃 解决方法一: 使用root用户会报错1.自启动脚本使用 sudo -S /opt/run.sh 方式启动脚本会出现问题2.手动启动或者修改自启动脚本启动方式 run.sh 就能正常运行解决方法二…