C++如何判断变量类型

2023-11-05

C++如何判断变量类型

使用 typeid 判断其类型:(需要在编译语言选项中选择 RTTI 编译选项),例子:【引用自这里】,详情可以看这里

#include <iostream >
#include <typeinfo.h>
using namespace std;
int main()
{
	char *p=NULL;
	char str[]="hello world";
	cout<<typeid(p).name()<<endl;
	cout<<typeid(str).name()<<endl;
	return 0;
}

打印出的类型并不是可以直接读懂的,可以参考下面的类型对照表【参考自这里】解读。

  <builtin-type> ::= v	# void
		 						::= w	# wchar_t
		 						::= b	# bool
		 						::= c	# char
		 						::= a	# signed char
		 						::= h	# unsigned char
		 						::= s	# short
		 						::= t	# unsigned short
		 						::= i	# int
		 						::= j	# unsigned int
		 						::= l	# long
		 						::= m	# unsigned long
		 						::= x	# long long, __int64
		 						::= y	# unsigned long long, __int64
		 						::= n	# __int128
		 						::= o	# unsigned __int128
		 						::= f	# float
		 						::= d	# double
		 						::= e	# long double, __float80
		 						::= g	# __float128
		 						::= z	# ellipsis
                 				::= Dd # IEEE 754r decimal floating point (64 bits)
                 				::= De # IEEE 754r decimal floating point (128 bits)
                 				::= Df # IEEE 754r decimal floating point (32 bits)
                 				::= Dh # IEEE 754r half-precision floating point (16 bits)
                 				::= DF <number> _ # ISO/IEC TS 18661 binary floating point type _FloatN (N bits)
                 				::= DB <number> _        # C23 signed _BitInt(N)
                 				::= DB <instantiation-dependent expression> _ # C23 signed _BitInt(N)
                 				::= DU <number> _        # C23 unsigned _BitInt(N)
                 				::= DU <instantiation-dependent expression> _ # C23 unsigned _BitInt(N)
                 				::= Di # char32_t
                 				::= Ds # char16_t
                 				::= Du # char8_t
                 				::= Da # auto
                 				::= Dc # decltype(auto)
                 				::= Dn # std::nullptr_t (i.e., decltype(nullptr))
		 						::= u <source-name> [<template-args>] # vendor extended type
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++如何判断变量类型 的相关文章

  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 一元 +/- 运算符如何可能导致“-a”或“+a”中的整数提升,“a”是算术数据类型常量/变量?

    这句看似微不足道的台词摘自我的迈克 巴纳汉和布雷迪的 C 书 第 2 8 8 2 节 http publications gbdirect co uk c book chapter2 expressions and arithmetic h
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 火到爆的扩散模型(Diffusion Model)帮你具象化幻想世界

    Diffusion Model 如果你对人工智能有所了解 想必已经听说过Diffusion Model了 如果还没有 那就一起来了解一下吧 扩散 Diffusion 对于人能智能而言 是一个借用的概念 在热力学中 它指细小颗粒从高密度区域扩
  • 共享虚拟机(VM)教程

    vmware提供的共享虚拟机服务 我搜索了一下基本没有教程教你怎么用和注意事项的 所以我摸索了做了一个 仅供参考 1 VM共享虚拟机是什么 VMware共享虚拟机是基于局域网的云虚拟化操作系统 不是指虚拟机和主机共享文件网络 2 VM共享虚
  • 软件系统设计步骤与原理

    软件系统设计步骤与原理 在系统分析阶段 我们已经搞清楚了系统做什么的问题 其中最主要的是需求分析 确定用户需求 功能需求 系统性能 系统安全等方面的需求 数据流图 可以确定数据需求与转换过程 那么在系统设计阶段 就是着手实现需求的过程 即解
  • Qt 数据库 bindValue()使用方法

    使用数据库时 有很多种添加数据到数据库的方法 我这里使用的是变量传递数据 q prepare INSERT INTO CAN3 eDevID eMeaning eType eCurrentValue eDescrible ePermissi
  • idea中生成方法注释

    Description TODO Author YourName Date DATE 如果想在IDEA中生成类似上述的注释 那么可以先输入 再单击Enter键即可
  • jeeplus mysql_2.jeeplus源码-项目部署文档.docx

    项目部署文档官方网址 作者 lgf更新日期 2016 5 9开发工具 eclipse myeclipse mysql oracle tomcat6 7 8 打开eclipse右键 gt Import gt 选择如图 gt 选择工程 fini
  • c++vector查找元素所在的索引下标

    find函数 include
  • Java中的多线程(创建方式、安全问题、同步、死锁)

    学习笔记 多线程 简述 进程 正在进行中的程序 直译 线程 就是进程中一个负责程序执行的控制单元 执行路径 一个进程中可以有多个执行路径 称之为多线程 一个进程中至少要有一个线程 开启多个线程是为了同时运行多部分代码 每一个线程都有自己运行
  • python模块导入与模块包导入

    一 import 如何工作 main py程序第一次导入指定文件mod py时 执行 找到模块文件mod py 编译成字节码 可选 执行 pyc字节码 创建mod py中定义的对象 导入模块后 模块对象会被存储在sys modules的表中
  • 使用yum info查看软件包信息与常用软件包

    记录 357 场景 在CentOS 7 9操作系统上 使用yum info查看软件包信息 包括软件包名称 适用架构 版本号 发行版 软件大小 仓库名称 概要 URL 许可证 描述 版本 操作系统 CentOS 7 9 1 iptables包
  • CSS的居中

    CSS vertical align 垂直居中 用于设置图片或表单 行内块元素 和文字垂直对齐 行内或行内块元素有效 属性 baseline 默认 元素放置在父元素基线上 top 把元素的顶端与行中最高元素顶端对齐 middle 把此元素放
  • C# -Unity中 params的用法

    1 形式为 方法修饰符 返回类型 方法名 params 类型 变量名 2 不允许将params修饰符与ref和out修饰符组合起来使用 3 与参数数组对应的实参可以是同一类型的数组名 也可以是任意多个与该数组的元素属于同一类型的变量 4 若
  • 2014年6月30日-7月6日(10小时,剩4414小时)

    6月30日 4小时 剩4420小时 上午2小时OSGEARTH源码 下午 DX11书2小时 7月1日 3小时 7月2日 1小时 7月3日 1小时 7月4日 1小时 剩4414小时
  • NoSQL数据库简介

    假如必须支持数量极为庞大的Web用户 而不是像原来那样只需要支持一小部分商户 开发者要求数据库必须能够提供下列几个方面的支持 对大批量读写操作的处理能力 较低的延迟时间和较短的响应时间 较高的数据可用性 关系型数据库很难满足上述需求 对于大
  • dwr反转ajax功能,DWR Reverse Ajax功能实践的要点

    packagecom hhh nms remote importorg apache log4j Logger importjavax servlet ServletContext importorg springframework web
  • https://code.google.com/p/baiduhook/

    https code google com p baiduhook
  • 宝妈怎样边带娃边赚钱?

    越来越多的人开始做自媒体 在家用手机就能做 比较适合那些空闲较多的学生 宝妈 待业的一些小伙伴们 昨天一天发布看书视频收益400多 操作方法并不难 今天这期内容就来把方法分享给粉丝们 如何操作 点个赞继续看 1 文案 1 在平时看的书 报纸
  • PTA1040 有几个PAT

    PTA 1040 有几个PAT 字符串 APPAPT 中包含了两个单词 PAT 其中第一个 PAT 是第 2 位 第 4 位 A 第 6 位 T 第二个 PAT 是第 3 位 第 4 位 A 第 6 位 T 现给定字符串 问一共可以形成多少
  • 机器学习与深度学习入门环境安装

    机器学习与深度学习入门环境安装 1 编程语言 2 开发平台 3 机器学习工具包 4 深度学习框架 1 编程语言 Python 胶水语言 集成度高 简单实用 受众面广 开发者社区和资源丰富 功能强大 十分适合新手入门与科研工作者使用 但运行速
  • C++如何判断变量类型

    C 如何判断变量类型 使用 typeid 判断其类型 需要在编译语言选项中选择 RTTI 编译选项 例子 引用自这里 详情可以看这里 include