吴江建设局网站打不开建设工程检测网

diannao/2025/10/19 12:33:49/文章来源:
吴江建设局网站打不开,建设工程检测网,wordpress开启cdn,网页设计与制作教程第二版答案0. Overview C的预处理指令格式为#name#xff0c;均以#开头#xff0c;#和指令名之间不可有空白字符#xff0c;#前可以有空字符#xff0c;但为增强可读性#xff0c;一般应从第一列开始 #name不能由宏展开得来#xff0c;name也不能由宏展开得来#xff0c;如 // Wro…0. Overview C的预处理指令格式为#name均以#开头#和指令名之间不可有空白字符#前可以有空字符但为增强可读性一般应从第一列开始 #name不能由宏展开得来name也不能由宏展开得来如 // Wrong 1 #define INC #include INC stdio.h // Wrong 2 #define INC include #INC stdio.h 预处理指令只能占一行但是在写代码时可以用\分隔多行但处理时仍会将这多行合为一行。有些指令带参数参数需与指令由空白字符分隔 预处理指令主要提供下列功能 引入头文件宏展开条件编译line control#line感觉一般人用不着诊断diagnostics可在编译器检查程序发出errors或warnings1. 头文件 用#include来包含头文件该指令的参数形式有两种 #include file 用于系统头文件。Preprocessor将在a standard list of system directories下搜寻文件file可以用编译器的-I选项来将目录添加到这个list#include file 用于程序自身的头文件。Preprocessor的搜寻顺序如下 a. 先在包含该文件的当前目录搜寻文件file b. 然后在quote directories中搜寻可以用编译器的-iquote选项来将目录添加到quote directories中 c. 最后再在用于搜寻file的目录下搜寻即 1. 中的顺序所以用#include stdio.h只要你不覆盖这个头文件的话也不会出现问题总能找着#include的参数无论是用还是括起来都如同一个字符串里面的注释不会被识别宏也不会展开。但是不同于字符串的是backslash不再有转义作用而是一个单纯的字符\ 在这一行文件名参数后面除了注释外不能有任何其他内容 只包含一次 Once-Only Headers 如果一个头文件被include两次编译器就会处理两次因此可能会出错如重定义等等标准做法是用所谓的wrapper #ifndef将头文件的内容包起来如 /* File foo. */ #ifndef FILE_FOO_SEEN #define FILE_FOO_SEENthe entire file#endif /* !FILE_FOO_SEEN */ 代码片段中的宏FILE_FOO_SEEN叫做controlling macro或者guard macro在用户程序头文件中该宏的名字不能以_开头在系统头文件中该宏的名字需要以__双下划线开头以免与用户程序头文件冲突。在任意类型的头文件中该宏的名字应该包含头文件文件名再加上额外的文字以避免与其他头文件冲突 2. 宏 Macros 宏是赋予名字的一段代码每次使用时都将名字替换成宏内容。宏分为两种它们在使用时有很大的不同 Object-like macros使用时像用data objects一样Function-like macros使用时像函数调用一样2.1 对象形式的宏 Object-like macros Object-like macro就是一个简单的标志符表示一个代码片段在使用时由这个代码片段来替换用法 #define NAME macro_body 宏body又叫expansion或replacement list是一个token序列 按照惯例宏的名字一般用大写字母 #define macro_body也只占一行并且macro_body后面不能有其他内容除空白字符或注释外在写代码时也可以用\分隔多行但预处理时仍会将它们合为一行 C preprocessor顺序地扫描源程序因此宏定义只从定义处开始生效 宏展开是递归进行的preprocessor将一个宏展开后会接着处理展开后的结果如果这里面有其他的宏会继续展开下去。但是如果结果里面再次出现刚刚展开的这个宏的话将不会展开第二次以免出现无限递归的情况 #define TABLESIZE BUFSIZE #define BUFSIZE 1024 TABLESIZE // - 先展开为 BUFSIZE // - 再展开为 1024 注意虽然宏会展开多次但是每次的展开过程只是单纯地用body替换name如上面的例子中在展开TABLESIZE时只是单纯地用BUFSIZE来替换它接下来preprocessor才检查替换结果是不是另一个宏 2.2 函数形式的宏 Function-like macros 如其名这种宏使用起来像函数调用一样。用法 #define name() body 注意小括号()必须和宏的名字连在一起否则会被当成object-like宏来展开同时在使用时也必须用name()的形式此时name和()间可以有空格2.3中同只用name的话不会被展开 2.3 宏参数 Function-like宏像函数一样可以接受参数用法 #define name(params_list) 其中params_list是参数列表参数必须是有效的C标志符由,分隔参数列表中可以出现空格但是空格没有实际作用 在“调用”函数形式的宏时将实参列表写在宏name后面的小括号里由,分隔函数形式宏的“调用”不限制在一行内可以写成多行但是参数数量必须和定义时的数量相匹配。可以实参可以是空但是数量也必须匹配直白讲即逗号数量必须一致如 min(, b) → (( ) (b) ? ( ) : (b)) min(a, ) → ((a ) ( ) ? (a ) : ( )) min(,) → (( ) ( ) ? ( ) : ( )) min((,),) → (((,)) ( ) ? ((,)) : ( ))min() error→ macro min requires 2 arguments, but only 1 given min(,,) error→ macro min passed 3 arguments, but takes just 2 如 #define min(X, Y) ((X) (Y) ? (X) : (Y))x min(a, b); → x ((a) (b) ? (a) : (b));y min(1, 2); → y ((1) (2) ? (1) : (2));z min(a 28, *p); → z ((a 28) (*p) ? (a 28) : (*p)); 在展开时会去除各个实参的leading、trailing whitespace实参的token序列中的whitespace会减成一个空格。在每个实参中小括号必须平衡小括号中的逗号不会结束这个参数即小括号中的逗号不是实参分隔符但中括号和大括号不要求平衡而且它们中的逗号会作为实参分隔符截断这个参数 宏定义中若参数出现在字符串中在展开时不会展开成相应实参如 #define foo(x) x, x foo(bar) → bar, x 2.4 字符串化 Stringizing 有时可能需要讲宏参数转换成字符串常量但是在 2.3 的最后提到字符串中的参数不会被实参替换为了解决这个问题可以用预处理操作符#来进行转换。当参数有一个前导#时preprocessor会将其替换为实参再转换成字符串常量但是这个过程发生后被转换成的字符串中如果还有宏则不会继续展开如果还想继续展开则需要写成多级宏的形式如 #define xstr(s) str(s) #define str(s) #s #define foo 4 str (foo)→ foo xstr (foo)→ xstr (4)→ str (4)→ 4 2.5 拼接 预处理操作符##用于在宏body中将两个tokens拼在一起如A ## B将展开为AB要求展开后必须是一个有效的C标志符如一个标志符和数字拼接两个数字间的拼接一些复合操作符如的拼接等等有些拼接是无效的如x和。 拼接常见的应用场景为宏参数间的拼接如 #define COMMAND(NAME) { #NAME, NAME ## _command }struct command commands[] {COMMAND (quit),COMMAND (help),… }; 2.6 取消宏定义 #undef name用于取消宏定义name可以是object-like宏的名字或者是function-like宏的名字不用加小括号以及参数列表 3. 条件编译 3.1 条件编译常用场景 根据机器架构或操作系统的不同使用不同的代码将原文件编译成两个不同的程序其中一个版本可能会用于输出一些data进行debugging等等使用#if 0来将排除一段代码但将其保留在源文件中用作注释3.2 条件编译语法 ifdefifndef #ifdef MACROcontrolled text#endif /* MACRO */ if #if expressioncontrolled text#endif /* expression */ expression是一个integer类型的C表达式可以包含 整形常量字符常量数学运算表达式和逻辑运算表达式遵循短路求值宏在计算宏所代表的表达式前将先展开所有的宏defined预处理指令所有不是宏的标志符都视为数字0函数形式的宏但没有调用实参列表也视为0defined 用在#if和#elif表达式中用于测试一个名字是否被定义成了一个宏defined name和defiend ( name )作用相同如果name定义为了一个宏则表达式值为1否则为0因此#if defined MACRO等价于#ifdef MACRO 在测试多个宏是否存在时defined比较有用如 #if defined (__vax__) || defined (__ns16000__) else 可以用在#if、#ifdef、#ifndef中 elif elif不需要一个#endif和其匹配 4. 诊断信息 #error导致preprocessor产生一个fatal error#error所在行的剩余tokens组成错误信息#warning导致preprocessor产生一个warning并继续预处理#warning所在行的剩余tokens组成错误信息两者都不对其参数进行宏展开 参考 GNU - The C Preprocessor: Macros转载于:https://www.cnblogs.com/jerrywossion/p/11071192.html

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

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

相关文章

佛山外贸网站推广网站开发系统设计怎么写

程序运行太慢,想要提速,但不使用复杂的技术如 C 扩展或 JIT 编译器。 解决方案 程序优化的第一准则是“不要优化”,第二准则是“不要优化那些不重要的部分”。基于这两个原则,如果你的程序运行得很慢,你得先找出影响性…

太仓网站公司网站漂浮广告代码

From: http://yaven.iteye.com/blog/1084044 今天找了很久关于在VIM中格式化xml的插件都没找到,后来才发现其实不用装插件,在linux环境中使用xmllint就可以实现对xml文件的格式化功能。 1,安装libxml2。 Libxml2 是一个xml的c语言版的解析器&…

网站建设做网站需要多少钱?红河网站建设

关于placement new 在https://blog.csdn.net/qq_42604176/article/details/111997397中已经介绍了placement new的形式。 它的形式为new()/delete().我们将分配好内存的指针送入括号中,就完成了初步的调用了。 其实我们可以定义放任何的东西到()内部。只放一个指针…

网站建设与管理的发展怎么开发手机网站

按照这个路径,找到config.inc.php文件,打开 找到下面三个语句 db_server:一般填127.0.0.1,如果修改了mysql的端口号,要在后面加上修改后的端口号,默认为3306 db_user:自己mysql数据库的用户名 db_password&#xff1…

深圳专业专业网站建设公司简单网站开发流程图

卖家工具箱源码上周,我们在LINEAS成立了一个“测试技能小组”,该小组用于交换有关测试的知识。 各种各样的问题反复出现的一个问题是:有哪些工具可以测试和分析代码? 因此,这是我对此的个人回答,按照我倾向…

租空间开网站七台河市网站建设

上一篇《对产品质量的一点思考》中说到自动化测试的重要性,本文简单介绍下怎样在实际项目中实现端到端测试的自动化,在这里我们使用的端到端测试工具是TestCafe。环境Jenkisn:2.183TestCafe:1.3.0为什么采用TestCafe做自动化测试要…

靖江做网站哪家好wordpress动漫视频主题

USI中,Hash的作用是什么? 在笔出墨之前,USI controller需要得到笔的一系列信息,例如颜色、宽度、压力、倾角信息等等,才允许出墨。 为了加快出墨的速度,USI controller内置一个information cache&#xf…

做同城相亲网站中国建设银行官网开户行查询

Ontrack EasyRecovery 16是由Ontrack官方最新出品的一款全面的自助数据恢复软件,中文名称叫做:易恢复。它能够轻松恢复所有的文件类型,包括文档、表格、图片、音视频和其他文件等,支持恢复不同存储介质数据:硬盘、光盘…

网站转化率是什么意思吴江区建设工程招标网站

这个问题是很难的,因为1980年代G.Kolesnik的二变量指数和方法被认为是登封造极,他关于ζ(1/2it) 和 Dirichlet 除数问题的论文1982年刊登在Pacufic.J.Math.,文中列了很多无法验证的方程,真不知道论文怎么能发表。所以1985年意大利E.Bombieri和…

o2o网站开发免费发布网站建设信息

Python-strace命令追踪ssh操作 通过strace 命令追踪ssh的进程ID,记录操作的命令[实际上是内核里面记录的东西],进行操作日志的Py解析达到效果 追踪进程并写入ssh操作到文件中 Ps: 此时机器A已经ssh登录了机器B,取得它的ssh进程PID 机器A登录后…

沈阳建网站山西运城市建设局网站

1.自己设置温度湿度阈值&#xff0c;当温度过高时&#xff0c;打开风扇&#xff0c;蜂鸣器报警 2.当湿度比较高时&#xff0c;打开LED1灯&#xff0c;蜂鸣器报警 bee.c #include"bee.h" void bee_init() {RCC->MP_AHB4ENSETR | (0x1<<1);GPIOB->MODE…

cad图做网站链接wordpress分类目录打不开

今晚下Windows Server2008的镜像下下来了&#xff0c;装在VM上了。给它分配了1G的内存&#xff0c;运行&#xff0c;速度真不错&#xff0c;比现在用的开发的机器的速度要快许多。真爽哟&#xff01;本本是Dell D630,Intel Core2 双核 T7250,2G内存。装的Vista系统&#xff0c;…

做非法网站怎么盈利seo营销方法

单位四元数 #region 单位四元数print(Quaternion.identity);testObj.rotation Quaternion.identity;//初始化对象时可能会用来赋值Instantiate(testObj,Vector3.zero,Quaternion.identity);#endregion 插值运算 #region 插值运算 //四元数中也提供了如同Vector3的插值运算 /…

网站建设合同封皮网站备案名称要求

yii2-fast-api yii2-fast-api是一个Yii2框架的扩展&#xff0c;用于配置完善Yii2&#xff0c;以实现api的快速开发。 此扩展默认的场景是APP的后端接口开发&#xff0c;因此偏向于实用主义&#xff0c;并未完全采用restfull的标准&#xff0c;方便前端开发处理接口数据以及各种…

山东省住房与城乡建设网站网址提交大全

我最近需要读取一堆文件&#xff0c;而不是仅仅抓住我和可能是大多数开发人员拥有的旧FileUtils.java&#xff0c;然后从一个项目复制到另一个项目&#xff0c;我决定快速了解其他方法。 是的&#xff0c;我知道有Commons IO和Google IO &#xff0c;我为什么还要打扰&#xf…

南宁做网站价格和别人做网站接单赚钱

方法一&#xff1a;按住shift键&#xff0c;鼠标右击&#xff0c;会出现"在此处打开命令窗口"&#xff1b;方法二&#xff1a;修改注册表&#xff0c;为鼠标右键添加打开命令行功能&#xff1b;(1)将下列内容赋值到记事本中&#xff0c;并保存为.reg文件。Windows Re…

案列网站新手如何建网站

目前在接触平台侧的开发&#xff0c;发现平台侧的东西和以前javacard开发很不一样&#xff0c;看来以后要学的东西还有很多很多。今天接触了下EasyMock。 Mock 方法是单元测试中常见的一种技术&#xff0c;它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象&#xf…

vps云主机可以建立几个网站网站规划的基本内容不包括

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

大型网站seo策略平乡县网站建设平台位置

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算…

html5 学习网站外贸手机商城网站建设 深圳

1. 起因 由于某些原因需要在大量的文献中查找相关内容&#xff0c;手动实在是太慢了&#xff0c;所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库&#xff0c;用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…