做cad室内平面图的家具素材网站重庆怎么推广企业网站

news/2025/10/6 13:24:18/文章来源:
做cad室内平面图的家具素材网站,重庆怎么推广企业网站,WordPress使用云数据库,佛山网站搭建费用C语言允许宏带有参数。在宏定义中的参数称为“形式参数”#xff0c;在宏调用中的参数称为“实际参数”#xff0c;这点和函数有些类似。 对带参数的宏#xff0c;在展开过程中不仅要进行字符串替换#xff0c;还要用实参去替换形参。 带参宏定义的一般形式为#xff1a…C语言允许宏带有参数。在宏定义中的参数称为“形式参数”在宏调用中的参数称为“实际参数”这点和函数有些类似。 对带参数的宏在展开过程中不仅要进行字符串替换还要用实参去替换形参。 带参宏定义的一般形式为 #define 宏名(形参列表) 字符串在字符串中可以含有各个形参。 带参宏调用的一般形式为 宏名(实参列表);例如 #define M(y) y*y3*y //宏定义 // TODO: kM(5); //宏调用在宏展开时用实参 5 去代替形参 y经预处理程序展开后的语句为k5535。 示例 输出两个数中较大的数。 #include stdio.h #define MAX(a,b) (ab) ? a : b int main(){int x , y, max;printf(input two numbers: );scanf(%d %d, x, y);max MAX(x, y);printf(max%d\n, max);return 0; }运行结果 input two numbers: 10 20 max20程序第 2 行定义了一个带参数的宏用宏名MAX表示条件表达式(ab) ? a : b形参 a、b 均出现在条件表达式中。程序第 7 行max MAX(x, y)为宏调用实参 x、y 将用来代替形参 a、b。宏展开后该语句为 max(xy) ? x : y;带参宏定义 1 . 带参宏定义中形参之间可以出现空格但是宏名和形参列表之间不能有空格出现。例如把 #define MAX(a,b) (ab)?a:b写为 #define MAX (a,b) (ab)?a:b将被认为是无参宏定义宏名 MAX 代表字符串(a,b) (ab)?a:b。宏展开时宏调用语句 max MAX(x,y);将变为 max (a,b)(ab)?a:b(x,y);这显然是错误的。 2 . 在带参宏定义中不会为形式参数分配内存因此不必指明数据类型。而在宏调用中实参包含了具体的数据要用它们去替换形参因此实参必须要指明数据类型。 这一点和函数是不同的在函数中形参和实参是两个不同的变量都有自己的作用域调用时要把实参的值传递给形参而在带参数的宏中只是符号的替换不存在值传递的问题。 示例 输入 n输出 (n1)^2 的值。 #include stdio.h #define SQ(y) (y)*(y) int main(){int a, sq;printf(input a number: );scanf(%d, a);sq SQ(a1);printf(sq%d\n, sq);return 0; }运行结果 input a number: 9 sq100第 2 行为宏定义形参为 y。第 7 行宏调用中实参为 a1是一个表达式在宏展开时用 a1 代换 y再用 (y)*(y) 代换 SQ得到如下语句 sq(a1)*(a1);这与函数的调用是不同的函数调用时要把实参表达式的值求出来再传递给形参而宏展开中对实参表达式不作计算直接按照原样替换。 3 . 在宏定义中字符串内的形参通常要用括号括起来以避免出错。例如上面的宏定义中 (y)*(y) 表达式的 y 都用括号括起来因此结果是正确的。如果去掉括号把程序改为以下形式 #include stdio.h #define SQ(y) y*y int main(){int a, sq;printf(input a number: );scanf(%d, a);sq SQ(a1);printf(sq%d\n, sq);return 0; }运行结果为 input a number: 9 sq19同样输入 9但结果却是不一样的。问题在哪里呢这是由于宏展开只是简单的符号替换的过程没有任何其它的处理。宏替换后将得到以下语句 sqa1*a1;由于 a 为 9故 sq 的值为 19。这显然与题意相违因此参数两边的括号是不能少的。即使在参数两边加括号还是不够的请看下面程序 #include stdio.h #define SQ(y) (y)*(y) int main(){int a,sq;printf(input a number: );scanf(%d, a);sq 200 / SQ(a1);printf(sq%d\n, sq);return 0; }与前面的代码相比只是把宏调用语句改为 sq 200/SQ(a1);运行程序后如果仍然输入 9那么我们希望的结果为 2。但实际情况并非如此 input a number: 9 sq200为什么会得这样的结果呢分析宏调用语句在宏展开之后变为 sq200/(a1)*(a1);a 为 9 时由于“/”和“”运算符优先级和结合性相同所以先计算 200/(91)结果为 20再计算 20(91)最后得到 200。 为了得到正确答案应该在宏定义中的整个字符串外加括号 #include stdio.h #define SQ(y) ((y)*(y)) int main(){int a,sq;printf(input a number: );scanf(%d, a);sq 200 / SQ(a1);printf(sq%d\n, sq);return 0; }由此可见对于带参宏定义不仅要在参数两侧加括号还应该在整个字符串外加括号。

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

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

相关文章

详细介绍:学习STC51单片机27(芯片为STC89C52RCRC)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[KaibaMath1001] 关于∀ε0,|a-b|ε = a=b的证明

[KaibaMath1001] 关于∀ε>0,|a-b|<ε => a=b的证明摘要:如能理解|a - b| < ε => a = b,则就可以轻松理解数列极限或函数极限的定义。 # 1 关于∀ε>0,|a - b| < ε => a = b的证明 # …

基于Web的分布式图集管理系统架构设计与实践 - 教程

基于Web的分布式图集管理系统架构设计与实践 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

做逆战网站的名字建网站学什么专业

URLEncoder到底是干什么用的&#xff1f;&#xff1f; 都说是对form表单里的请求编码解码用的&#xff0c;但是为什么在写中文文件下载的时候也用到了。 就是说国际通用的编码对中文支持不好&#xff0c;所以需要对着玩意进行转换。 因为中文读取的时候你不给一个编码&#xff…

完整教程:Deepseek/cherry studio中的Latex公式复制到word中

完整教程:Deepseek/cherry studio中的Latex公式复制到word中pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

网站ftp国内大型软件外包公司

文章目录 [toc]配置无线网和分区修改时区安装内核和驱动自动生成 fstab 文件配置 pacman切换到安装好的系统设置时区配置 pacman 国内源安装 gui安装 GRUB 引导建立引导 增加内核模块配置开机自启修改 root 用户密码创建普通用户配置 sudo 重启进入新系统配置 wlan 自动连接 wi…

TCP小结 - 指南

TCP小结 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Couri…

泰安营销型网站建设公司公司网络营销策略

税收问题&#xff0c;怎么把一个数按照部分进行计算呢&#xff1f;比如一个数大于10000&#xff0c;然后超过10000的部分按照5%计算&#xff0c;10000-5000的区间按照3%计算 在C中&#xff0c;你可以使用条件语句&#xff08;if-else语句&#xff09;来根据不同的条件计算税收…

亦庄网站建设wordpress单用户案例

无锁队列的基本介绍 一个关于无锁队列的多线程读写代码示例。在这里&#xff0c;我提供一个简单的示例来说明这个问题。 在使用无锁队列时&#xff0c;需要注意以下几点&#xff1a; 使用原子操作来实现对队列的读写操作&#xff0c;以避免多线程同时访问同一数据导致的竞争条…

石家庄网站建设公司黄页做网站建设 个体经营 小微企业

目录 一、为什么需要低代码平台 二、低代码平台的搭建能力 三、低代码其他能力 四、写在最后 随着互联网和信息技术的快速发展&#xff0c;各行各业都在积极拥抱数字化转型。在这个过程中&#xff0c;软件开发成为企业实现数字化转型的关键环节。然而&#xff0c;传统的软件开发…

国庆 Day2 强基物理

转动惯量又来了。相对论入门。前言:和暑假讲的有重合,上午主要是刚体转动力学、转动惯量、积分求解。那么就结合暑假的部分一起整理了。晚上等老师发了笔记再来更新。 讲了几乎一上午的积分。就当做是复习暑假自学的…

ZR 2025 十一集训 Day 6

100 + 100 + 10 + 0 = 210, Rank 5/22.良心模拟赛,吊打 MX。25十一集训day1 链接:link 题解:题目内 时间:4.5h (2025.10.06 08:30~13:00) 题目数:4 难度:A B C D\(\color{#F39C11} 橙\) \(\color{#3498DB} 蓝\)*…

AirSim 安装过程记录 - zzh

AirSim 安装简略教程与注意事项 Part 1: 安装摘要 本文旨在记录本人安装AirSim的过程,以便于后续在其他设备上的迁移安装 参考网站:微软官方下载指导:https://microsoft.github.io/AirSim/powershell 下载指导:htt…

LARAVEL安装报错:Illuminate\Database\QueryException could not find driver (Connection: sqlite, SQL:

安装LARAVEL12.32.5时,执行 composer global require laravel/installer cd example-appphp artisan serve后访问http://localhost:8000/ 时报错:Illuminate\Database\QueryException could not find driver (Conne…

unix/linux source 命令,其发展历程详细时间线、由来、历史背景 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于AXI模块的视频流传输(硬件连接篇)

初来乍到,先自我介绍,我是一所双非学校集成电路专业的学生,目标是成为一个合格的FPGA,数字ic设计,验证工程师,目前大三,此篇章仅以记录我打FPGA创新创业大赛过程的一些学习经验,是基于zynq7020开发板的开发项目…

四、函数调用具备单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型

四、函数调用具备单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型2025-10-06 12:55 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !impo…

商丘网站建设的公司哪家好企业所得税什么时候交

#include指令和头文件 例如#include <stdio.h>&#xff0c;我们经常看到C文件最上面会有类似这样的语句&#xff0c;它的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上&#xff0c;这是一种“拷贝-粘贴”的操作。 #include这行代码是一条C预处理器…

深圳网站建设 利科技有限公司购物网站建设服务

如果对于二叉搜索树不是太清楚&#xff0c;为什么要使用二叉搜索树&#xff1f;作者推荐&#xff1a;二叉搜索树的初步认识_加瓦不加班的博客-CSDN博客 定义节点 static class BSTNode {int key; // 若希望任意类型作为 key, 则后续可以将其设计为 Comparable 接口Object val…

[GDOUCTF 2023]泄露的伪装

打开题目,根据题目提示扫描题目所在目录扫描完成后访问扫描到的两个文件 在压缩包文件中看到php文件直接访问php文件后,看到源码使用写入协议 ?cxk=data://text/plain;base64,Y3RybA==得到flag