首页 > 其他分享 >关于宏的理解

关于宏的理解

时间:2024-05-28 18:04:37浏览次数:21  
标签:const 函数 符号 strs char 理解 关于 变量

关于宏的理解,
用宏函数举例
宏会把我们的内容编程一段代码,但是我们宏用的一切都不是变量,就是一个构建代码的符号。
比如下面的例子
 char str1[] = "1234";
 const char* str2 = "1234";
 char st3[5] = { '1','2','3','4','\0' };
 char st4[5] = { '1','2','3','4',0 };
 const char* strs[4];
for (size_t i = 0; i < 4; i++)
{
    宏函数(i);
}
我们希望宏把这个i编程1~4,这是不可能的,他可以生成一个带i的函数,但是对i的解析他是不管的。
所以我们用宏的时候一定要清楚,宏里面是不会有任何变量的,有的只是符号,他生成的程序运行的时候才有变量的概要,而宏本深是不解析任何变量的。他充其量把一个符号变成字符。但绝对没有变量。
就比如我想想中的宏函数是这样的
 宏函数 (i) strs[i]= str##i

我期望的目的是生成这样的代码 strs[1]= str1 
但实际是strs[i]= stri 

所以这里我们一定要清楚,宏只是编译,他只是处理符号,完全没有变量的概念,变量只有到运行的阶段才有。

标签:const,函数,符号,strs,char,理解,关于,变量
From: https://blog.csdn.net/xie__jin__cheng/article/details/139266716

相关文章

  • 深入理解Java Stream流
    深入理解JavaStream流Java8引入的StreamAPI为我们提供了一种全新的处理集合的方式,使得我们能够更加优雅和高效地进行数据处理。本文将深入探讨JavaStream流,包括其基本概念、常用操作以及一些实际应用场景。什么是Stream?Stream是Java8中引入的一种处理数据集合的抽象......
  • Java 理解和使用compareTo和compare方法
    在Java编程中,经常需要对对象进行排序。为了实现排序功能,Java提供了两种主要的方法:compareTo和compare。尽管它们都用于比较对象,但它们在使用场景和定义位置上有所不同。本文将详细探讨这两种方法的区别、用途以及如何在实际项目中使用它们。compareTo方法compareTo方法......
  • 关于neo4j的下载
    neo4j下载链接Neo4jDeploymentCenter-GraphDatabase&Analyticsjdk17下载链接JavaDownloads|Oracle打开链接之后一直下滑,找到如下所示界面  选择community和Windows下载成功后,将zip压缩包进行解压。进入E:\neo4j\neo4j-community-5.20.0\bin目录下,点击鼠标右键,......
  • 理解Vue 3响应式系统原理
    title:理解Vue3响应式系统原理date:2024/5/2815:44:47updated:2024/5/2815:44:47categories:前端开发tags:Vue3.xTypeScriptSFC优化Composition-APIRef&Reactive性能提升响应式原理第一章:Vue3简介1.1Vue3概述Vue3的诞生背景:Vue2的局限与改进需......
  • 理解Vue 3响应式系统原理
    https://www.cnblogs.com/Amd794/p/18218208 第一章:Vue3简介1.1Vue3概述Vue3的诞生背景:Vue2的局限与改进需求Vue3的主要版本发布日期和目标:稳定性和性能的提升1.2Vue3的新特性TypeScript支持:引入TypeScript作为官方推荐的开发语言,增强了类型安全性和代码质量......
  • 2024最新ChatGPT网站源码+AI绘画系统源码,详细图文搭建教程/支持ChatGPT4.0/GPT-4o文档
    一、文章前言SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。本期针对源码系统整测试下来非常完美,那么如何搭建部署AI创作系统呢?小编这里写一个详细图文教程吧。支持GPT-4o大模型、GPTs应用、GPT语音对话、联......
  • 简单理解Zookeeper之数据同步机制
    写入数据流程请求发给Leaderclient向Zookeeper集群的Leader节点发送写请求Leader节点接收到写请求后,会对请求进行预处理,并为这次写操作分配一个全局唯一的递增ID(ZXID)。Leader将这个写请求(提案)广播给所有的Follower节点。这个提案包含了请求的具体内容和分配的ZXID。每个......
  • 简单理解Flume之Channel和Sink
    ChannelMemoryChannel1,MemoryChannel将数据临时存储的到内存队列2,属性属性默认值解释capacity100队列容量,默认情况队列中最多临时存储100条数据,实际过程这个值一般被调节成30W~50WtransacCapacity100PutList向Channel发送的数据条数,实际中一般会调节成3000~5000Fil......
  • 简单理解Flume之Source
    SourceAVROSource1,AVROSource监听指定端口,接收被AVRO序列化之后的数据2,结合AVROSink可以实现多级扇入扇出流动a1.sources=s1a1.channels=c1a1.sinks=k1#配置AVROSourcea1.sources.s1.type=avro#要监听的主机名或者IP地址a1.sources.s1.bind=hadoop0......
  • 【梦想起航】关于2024年科研学术交流项目 招募计划
    科研学术交流项目招募计划书一、项目背景与愿景    随着科研学术领域的蓬勃发展,中国学生及科研工作者在学术领域的贡献日益显著。为更好地展示中国学术的繁荣与成果,我们计划搭建一个科研学术交流网站,旨在为中国学生提供一个投稿论文、交流学术思想、展示科研成果的平台......