C语言中的“#”和“##”

news2024/11/15 9:04:47

目录

  • 开头
  • 1.什么是#?
  • 2.什么是##?
  • 3.###的实际应用
    • 输出变量的名字
    • 把两个符号连接成一个符号
    • 输出根据变量的表达式
    • ……
  • 下一篇博客要说的东西

开头

大家好,我叫这是我58。在今天,我们要学一下关于C语言中的###的一些知识。

1.什么是#?

#,是一个只能用于宏的符号,用来返回#后面的量的名字(可以是变量,可以是宏,枚举常量或者字面常量,表达式也是可以的,但定义宏的时候#的右变必须是宏的参数),是一个字符串,其中,如果某个宏是#A(这里的A为字面常量)这种形式的话,那么这个宏就会返回这个字面常量转换成的字符串,比如#A(这里的A11.4514),它返回的就是11.4514这个字符串,而又比如#A(这里的A为表达式1+2),它返回的是1+2这个字符串,并且还比如#A(这里的AHello, world!这个字符串),它返回的是"Hello, world!"两边都带有"的字符串,不是两边都没带"的字符串Hello, world!。这就是#,非常简单。

2.什么是##?

在这里插入图片描述
##,也是一个只能用于宏的符号,用来返回把两个符号连接成一个符号的值,其中,这个值的类型可以是浮点型,可以是整型,可以是结构体类型,甚至也可以是一个函数!总之就是什么东西都可以合成而已,并且,在某个宏里写##的时候,##的前面和后面必须有你写的符号,否则就会报错,因此,我们可以把没定义过的CSDN或者YK1BOY##合成出一个CSDNYK1BOY来,而这就是##,跟#一样非常简单。

3.###的实际应用

输出变量的名字

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define PRINT(A) printf(#A"\n")
int main() {
	int i = 0;
	float f = 0.0f;
	unsigned int def = 0;
	PRINT(i);
	PRINT(f);
	PRINT(def);
	return 0;
}

把两个符号连接成一个符号

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define CAT(A, B) A##B
#define E 0
#define OF 67
#define DE(A) 1.2
#define D 666
#define E(A) 678
int main() {
	int i = 1;
	int ii = 7;
	int iii = 87887;
	printf("%d\n", CAT(i, ii));
	printf("%d\n", CAT(E, OF));
	printf("%f\n", CAT(D, E(A)));
	return 0;
}

输出根据变量的表达式

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define PRINT(A,FORMAT) printf(#A" = "FORMAT"\n", A)
int main() {
	int i = 11;
	float f = 4.5f;
	unsigned int def = 810;
	PRINT(i,"%d");
	PRINT(f,"%f");
	PRINT(def,"%u");
	return 0;
}

……

下一篇博客要说的东西

预处理指令的其中之一——#line

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

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

相关文章

Datawhale X 李宏毅苹果书 AI夏令营-深度学入门task2:线性模型

1.线性模型 把输入的特征 x 乘上一个权重&#xff0c;再加上一个偏置就得到预测的结果&#xff0c;这样的模型称为线性模型&#xff08;linear model&#xff09; 2.分段线性模型 线性模型也许过于简单&#xff0c;x1 跟 y 可能中间有比较复杂的关系。线性模型有很大的限制&…

上书房信息咨询:商标相似性评估调研

商标相似性评估调研可以帮助确定商标之间的相似性程度&#xff0c;为商标注册、商标权利维护和商标侵权案件提供参考依据。以下是进行商标相似性评估调研的一般步骤&#xff1a; 1、收集商标信息&#xff1a;收集相关商标的注册证书、商标注册申请、商标注册公告等信息&#x…

【测试】——开发模型与测试模型

&#x1f4d6; 前言&#xff1a;在软件开发过程中&#xff0c;理解和应用合适的开发模型与测试模型至关重要。本文将详细介绍几种常见的开发模型&#xff0c;如瀑布模型、螺旋模型、增量模型和敏捷过程&#xff0c;以及测试模型如V模型和W模型。 目录 &#x1f552; 1. 开发模型…

Mobile-Agent赛题分析和代码解读笔记(DataWhale AI夏令营)

前言 你好&#xff0c;我是GISer Liu&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本文是DataWhale 2024 AI夏令营的最后一期——Mobile-Agent赛道&#xff0c;关于赛题分析和代码解读的学习文档总结&#xff1b;这边作者也会分享自己的思路&#xff1b; 本文是对原视频的…

18045 前一个和后一个字符

### 思路 1. 读取输入的字符。 2. 判断输入是否为数字字符&#xff1a; - 如果不是数字字符&#xff0c;输出“error”。 - 如果是数字字符&#xff0c;进行以下判断&#xff1a; - 如果输入是0&#xff0c;输出“first”和1。 - 如果输入是9&#xff0c;输出8…

MACOS安装配置前端开发环境

官网下载安装Mac版本的谷歌浏览器以及VS code代码编辑器&#xff0c;还有在App Store中直接安装Xcode&#xff08;里面自带git&#xff09;&#xff1b; node.js版本管理器nvm的下载安装如下&#xff1a; 参考B站&#xff1a;https://www.bilibili.com/video/BV1M54y1N7fx/?sp…

【Python 千题 —— 基础篇】评论倾向分析

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 在某个电商平台的评论系统中,用户可以提交商品评论。为了分析评论的情感倾向,我们需要编写一个程序来处理用户评论,并对评论内容进行简单的分析和处理。…

在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听

etcd 和zookeeper 很像&#xff0c;都可以用来做配置管理。并且etcd可以在目前流行的Kubernetes中使用。 但是etcd 提供了v2版本合v3的版本的两种api。我们现在分别来介绍一下这两个版本api的使用。 一、Etcd V2版本API 1、java工程中使用maven引入 etcd v2的java api操作ja…

Pytorch实现自然风光图像场景分类识别(含训练代码和数据集)

Pytorch实现自然风光图像场景分类识别(含训练代码和数据集) 目录 Pytorch实现自然风光图像场景分类识别(含训练代码和数据集) 1. 前言 2. 自然风光图像场景分类数据集 &#xff08;1&#xff09;自然风光图像场景分类数据集 &#xff08;2&#xff09;自定义数据集 3. 自…

震惊!更换GPU会改变LLM的行为

文章目录 新发现前言1. Why this article ?2. Setup the experimentation3. The experiment results&#xff1a;A100/A10/30904. Why is it different?5. Why do the calculation differ depending on the GPU ?结论 新发现 最近在做RAG相关的工作&#xff0c;偶然间发现&a…

swift自定义数据集微调Qwen-7B大模型,转换模型后使用ollama跑起来

前文&#xff1a;swift微调Qwen-7B大模型-CSDN博客 我详细介绍了swift如何进行微调&#xff0c;但数据集均来自魔搭社区&#xff0c;如何想训练自定义数据集&#xff0c;实际上也很简单。 一、自定义数据集微调 export MKL_THREADING_LAYERGNU \ CUDA_VISIBLE_DEVICES0,1,2…

STM32:TIM定时中断配置的最全库函数讲解笔记

声明&#xff1a;本博客为哔哩哔哩up主江协科技 “STM32入门教程”的听课笔记&#xff0c;仅供学习、参考使用&#xff0c;不得用作其他用途&#xff0c;违者必究。如有版权问题&#xff0c;请联系作者修改。 目录 一、综述 二、TIM库 初始化 2.1、TIM_DeInit 恢复缺省值 …

经典文献阅读之--ParkingE2E(基于摄像头的端到端停车网络:从图像到规划)

0. 简介 自动泊车是智能驾驶领域的一项关键任务。传统泊车算法通常采用基于规则的方案来实现。然而&#xff0c;由于算法设计的复杂性&#xff0c;这些方法在复杂的泊车场景中效果欠佳。相比之下&#xff0c;基于神经网络的方法往往比基于规则的方法更加直观且功能多样。通过收…

中国的铁路订票系统在世界上属于什么水平?

每到节假日&#xff0c;中国的铁路订票系统总会成为人们热议的焦点。无论是“抢票大战”还是“秒杀特价票”&#xff0c;这一系统似乎总是牵动着亿万乘客的心。那么&#xff0c;中国的铁路订票系统到底有多强大&#xff1f;在全球范围内&#xff0c;它处于什么水平&#xff1f;…

Java_ElasticSearch(ES)——分布式搜索引擎

介绍&#xff1a; Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上&#xff0c;提供了一个强大的全文搜索和分析引擎&#xff0c; 它结合kibana、Logstash、Beats&#xff0c;是一整套技术栈&#xff0…

C语言——简单的do while循环找100~999之间的水仙花数(所有的三位水仙花数)

这道题的关键是如何把这个三位数的个位、十位、百位表示出来 这里用到了 / &#xff08;整除&#xff09;和 % &#xff08;取余&#xff09;这两个运算符 #include<stdio.h> int main() { int num 100; do { int a; int b; int …

手把手教你:用sentence-transformers库进行文本嵌入

在 Python 中使用 sentence-transformers 库进行实操&#xff0c;你可以按照以下步骤进行&#xff1a; 1. 安装 sentence-transformers 库 首先&#xff0c;确保你已经安装了 sentence-transformers。如果没有&#xff0c;可以通过 pip 安装&#xff1a; pip install sentenc…

图像去噪评论:从经典到最先进的方法

系列文章目录 文章目录 系列文章目录前言摘要1 引言1.1.噪声抑制 2. 空间域过滤2.1.局部滤波器2.2.非局部滤波器 3.变换域滤波3.1.阈值3.1.1. 通用阈值3.1.2. VISUShrink3.1.3.SURE收缩3.1.4.BayesShrink3.1.5.概率收缩3.1.6.SURELET3.1.7.Neigh Shrink Sure&#xff08;NSS&am…

十一头像红旗怎么弄的?3个方法轻松教会你!

国庆佳节渐行渐至&#xff0c;朋友圈里早已掀起了一股更换国庆主题头像的热潮&#xff01;那些五彩斑斓、光彩夺目的渐变国旗头像&#xff0c;既美观又富有节日气氛。如果你也想加入这个行列&#xff0c;那么如何动手制作呢&#xff1f;别担心&#xff0c;接下来我将为你介绍三…

求解组合优化问题的具有递归特征的无监督图神经网络

文章目录 ABSTRACT1 Introduction2 Related Work3 QRF-GNN方法4 数值实验4.1 MAX-CUTABSTRACT 介绍了一种名为QRF-GNN的新型算法,有效解决具有二次无约束二进制优化(QUBO)表述的组合问题。依赖无监督学习,从最小化的QUBO放松导出的损失函数。该架构的关键组成部分是中间GNN…