关于预处理详解 #define 宏 #和##

news2024/11/23 7:08:58

#和##

#运算符

#运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带参数的宏的替换列表中。
#运算符所执⾏的操作可以理解为”字符串化“。
当我们有⼀个变量 int a = 10; 的时候,我们想打印出: the value of a is 10 .
就可以写:
#define PRINT(n) printf("the value of "#n " is %d", n);
当我们把a替换到宏的体内时,就出现了#a,⽽#a就是转换为"a",时⼀个字符串
代码就会被预处理为:
printf("the value of ""a" " is %d", a);

例子

更改后

##运算符

## 可以把 位于它两边的符号合成⼀个符号 ,它 允许宏定义从分离的⽂本⽚段创建标识符 ## 被称
为记号粘合
这样的连接 必须产⽣⼀个合法的标识符 。否则其结果就是未定义的
写⼀个函数求2个数的较⼤值的时候,不同的数据类型就得写不同的函数
int int_max(int x, int y)
{
 return x>y?x:y;
}
float float_max(float x, float y)
{
 return x>yx:y;
}
这样写起来太繁琐了,现在我们这样写代码
完整代码

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

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

相关文章

MySQL函数:流程函数

1.IF函数 基本语法:IF(expr1,expr2,expr3) 功能:如果value为true,返回t, 否则返回f 例如:这个里面expr1里面是false,返回的是Error,如果是true,返回OK select if(false, OK, Err…

开通微信视频号直播的流程

首先我们要了解什么是视频号? 视频号其实就是腾讯家的“抖音”/“快手”,可以发布视频和直播(包括直播带货)。 微信视频号不同于订阅号、服务号,它是一个全新的内容记录与创作平台,也是一个了解他人、了解…

适合二开的web组态软件

技术文档 官网网站:http://www.hcy-soft.com 体验地址:by组态[web组态插件] 可以广泛应用于化工、石化、制药、冶金、建材、市政、环保、电力等几十个行业。 一、产品简介 BY组态是完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮…

OJ在线评测系统 后端基础部分开发 完善CRUD相关接口

完善相关接口 判斷编程语言是否合法 先从用户的请求拿到Language package com.dduo.dduoj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dduo.dduoj…

OpenHarmony(鸿蒙南向)——平台驱动开发【SDIO】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 SDIO(Secure Digital Input and Outpu…

【Faster-Rcnn】训练与测试

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 1.提前准备 1.1. mobaxterm(远程连接服务器) 链接&#xff1a…

达索系统SOLIDWORKS2025新版本即将来袭

达索系统SOLIDWORKS2025新版本即将来袭 北京众联亿诚是达索官方授权的SOLIDWORKS经销商,专业经销SOLIDWORKS正版软件并提供免费试用、培训认证、二次开发等增值服务。 在CAD软件领域,SOLIDWORKS作为达索系统旗下的旗舰产品,一直以其优越的三…

CTF学习路线(非常详细)零基础入门到精通,收藏这一篇就够了

**CTF概述:**CTF(夺旗赛)是一种网络安全竞赛,通过解决一系列安全问题来测试参赛者的技能和经验。对于网络安全爱好者和从业者来说,学习CTF是一个不错的选择。 下面是从零开始学习CTF的详细规划和路线: 1 基础知识 要开始学习C…

问题:机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点整数。

一、概念 概念:无论原码、反码、补码,n位二进制数可以表示2^n个数值 二、从范围证明 有符号的情况下,表格如下: 其中,原码、反码含有-0、0 , 而补码不划分0 由此,可知: ① 原码…

Ubuntu 编译安装 ImageMagick 来处理图片

一:克隆 ImageMagick cd /tools git clone https://github.com/ImageMagick/ImageMagick.git cd ImageMagick 二:安装编译 ImageMagick 所需的软件包 sudo apt -y install build-essential libltdl-dev libjpeg-dev libpng-dev libtiff-dev libgif-dev…

Unity 外描边简单实现(Shader Graph)

1:原理 将物体的模型空间的位置(也就是顶点数据)放大,作为一个单独的渲染通道单独渲染,这时候模型是已经发大过的,要想看到外描边的效果,需要将正面显示的东西给去掉,显示背面渲染的…

HTTPS证书配置

NGINX、SSl配置 修改conf目录下NGINX中的crt和key文件 单点配置SSL 需要的文件和配置信息 证书和keytool.exe(使用jdk1.8的)工具要在同一个目录下 gxszy.qhxzhny.top.pfx(证书) keystorePass.txt(密码) 使用JDK自带的keyto…

【CSS】变量的声明与使用

原生变量root 伪类 原生变量 CSS中我们可以统一设置变量方便页面维护。变量声明的时候,自定义样式变量名之前加上两根连词线 " – " 即可,使用 var() 来引用。声明的变量是有作用域的 ( 比如是在html中声明的变量,那么该变量在html…

Leecode刷题之路从今天开始

前言 众所周知,数据结构算法程序。算法对程序的重要性不言而喻。我们后端研发在写业务代码的时候很容易忽略算法,因此为了加强算法功底,从今日起,决定每日记录Leecode刷题记录,每道题都有相关的demo代码和文档&#x…

Voxel mamba :基于Mamba的3D目标检测算法解析

目录 1 算法简介1.1 前提补充空间填充曲线(Space-filling Curve)点云分组2 模块介绍2.1 希尔伯特输入层(Hilbert Input Layer)2.2 双尺度 SSM 模块(Dual-scale SSM Block)2.3 隐式窗口分区 (Implicit Window Partition)2.4 Voxel Mamba Backbone2.5 有效感受野 Effecti…

安全使用微软Azure OpenAI:使用 Azure AI Studio 实现企业安全的 5 种方法

Azure 是一个受到数百万客户信赖的创新平台,目前有超过 60,000 名客户正在使用 Azure AI,通过 AI 将他们的雄心勃勃的想法变为现实。Azure AI Studio是一个值得信赖的企业级平台,可用于大规模构建、测试、部署和管理生成式 AI 应用程序。企业…

一键启动,停止,重启nginx

1.一键启动nginx 启动的时候只能启动当前目录的nginx.exe echo off echo 正在启动nginx cmd /c "start nginx.exe" timeout /t 1 /nobreak > NUL2.一键关闭nginx 关闭的时候只能关闭当前目录的nginx.exe echo off echo 正在关闭nginx cmd /c "nginx -s quit&…

kubernetes网络(三)之bird的路由反射器的使用

一、摘要 上一篇文章中我们用 bird 程序实现了三台服务器之间的BGP full mesh。本文我们将实验把full mesh方式改为RR 路由反射器方式 ,让宿主的BIRD相互学习到对方的容器网段,从而达到容器网段能相互通信的目的。 二、bird 实验 bird简介 BIRD 实际…

awvs漏洞扫描工具使用教程

一、工具简介 AWVS(Acunetix Web Vulnerability Scanner)是一款常用的Web应用程序漏洞扫描工具,业界排名Top3,它可以自动扫描Web应用程序并发现其中可能存在的漏洞,包括SQL注入、跨站脚本、文件包含等安全漏洞。AWVS具…

Java语言程序设计基础篇_编程练习题**18.39(拖动树)

目录 题目:**18.39(拖动树) 代码示例 代码逻辑解析 类定义和变量初始化 main 方法 start 方法 drawRecursiveTree 方法 动画演示 题目:**18.39(拖动树) 修改编程练习题18.38, 将树移动到鼠标所拖动到的位置 Java语言程序设计基础篇_编程练习题…