首页 > 编程语言 >UEC++ 数据类型

UEC++ 数据类型

时间:2022-09-19 10:24:52浏览次数:75  
标签:代表 字节 数据类型 TCHAR C++ 字符串 str UE ANSICHAR

禁止在UE中使用C++的基本数据类型,这样会影响引擎的跨平台特性

1、基本数据类型

  • bool 代表布尔值 (永远不要假设布尔值的大小) 。
  • BOOL 将不会进行编译。
  • TCHAR 代表字符型(永远不要假设TCHAR的大小)。
  • uint8 代表无符号字节(占1个字节)。
  • int8 代表有符号的字节(占1个字节)。
  • uint16 代表无符号"短整型" (占2 个字节)。
  • int16 代表有符号"短整型" (占2 个字节)。
  • uint32 代表无符号整型(占4字节)。
  • int32 代表带符号整型(占4字节)。
  • uint64 代表无符号"四字" (8个字节)。
  • int64 代表有符号"四字"(8个字节)。
  • UE float 代表单精度浮点型 (占4 个字节)。
  • double 代表双精度浮点型 (占8 个字节)。
  • PTRINT一个符号整数和一个指针一样大小(用来标记指针的大小) (永远不要假设PTRINT的大小)。

2、字符编码

编码解决的是文本问题。

3、字符类型

UE4中提供多种字符类型进行处理数据,在不同的情景下,我们需要选择不同的类型进行操作。

区别:大小不同,编码方式不同,所有的文本在进行存储的时候,编译器编译阶段会根据编码类型进行转码。

使用:通过结构体 FPlatformTypes

typedef FPlatformTypes::ANSICHAR ANSICHAR;

转码宏的使用:下列是虚幻中提供的一些转码宏

// Usage of these should be replaced with StringCasts.
#define TCHAR_TO_ANSI(str) (ANSICHAR*)StringCast<ANSICHAR>(static_cast<const TCHAR*>(str)).Get()
#define ANSI_TO_TCHAR(str) (TCHAR*)StringCast<TCHAR>(static_cast<const ANSICHAR*>(str)).Get()
#define TCHAR_TO_UTF8(str) (ANSICHAR*)FTCHARToUTF8((const TCHAR*)str).Get()
#define UTF8_TO_TCHAR(str) (TCHAR*)FUTF8ToTCHAR((const ANSICHAR*)str).Get()

4、对象字符串

FName:资源命名字符串,FName 通过一个轻型系统使用字符串。在此系统中,特定字符串即使会被重复使用,在数据表中也只存储一次。FNames 不区分大小写(大小写不是他比较的依据)。它们为不可变,无法被操作。FNames 的存储系统和静态特性决定了通过键进行 FNames 的查找和访问速度较快。FName 子系统的另一个功能是使用散列表为 FName 转换提供快速字符串。

FText:表示一个显示字符串,用户的显式文本都需要由FText进行处理。支持格式化文本,不提供修改函数,无法进行内容修改

FString:可以被操作的字符串。开销大于其他类字符串类型

标签:代表,字节,数据类型,TCHAR,C++,字符串,str,UE,ANSICHAR
From: https://www.cnblogs.com/limu-zy/p/16706787.html

相关文章

  • C#封装FluentValidation
    FluentValidation是一个非常强大的用于构建强类型验证规则的.NET框架,帮程序员解决了繁琐的校验问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示:publi......
  • C++定义变量与生存周期
    作用域:作用域即一个变量可以被引用的范围,常见的作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。全局变量:具有全局作用域。全局变......
  • jQuery伪造post请求
     导出使用场景:当前端需要传非常多的参数数据,就需要用到post导出get请求:window.location.href="/CustomOrder/MapRowLinePlan/PlanUseCommunityDown?appCode=CTMS&dat......
  • 使用Vite快速构建Vue3+ts+pinia脚手架
    一、前言vue3的快速更新,很多IT发展快的地区在22开始都已经提上日程,小编所在的青岛好像最近才有点风波。vue3的人才在青岛还是比较稀缺的哈,纯属小编自己的看法,可能小编是个......
  • 基于electron+vue+element构建项目模板之【改造项目篇】
    1、概述开发平台OS:windows开发平台IDE:vscode上一篇中已完成了electron-vue项目的创建,本篇章中则介绍在此项目基础上进行取消devtools的安装、项目结构的改造、环境变量......
  • 5G UE接入消息详解
    问题:UE重新注册需要5-6分钟FER:5G学习笔记之UE接入消息详解5G;NG-RAN;NGApplicationProtocol(NGAP)(3GPPTS38.413version15.0.0Release15......
  • C/C++公交路线自动化选择系统
    C/C++公交路线自动化选择系统程序设计题1:公交路线自动化选择系统实现出题人:张勤面向专业:测控技术与仪器难度等级:31问题描述要求编写一个程序,实现公交路线的自动......
  • C++11 -- 匿名函数(lambda 表达式)
    0.一道题目引入关于sb力扣定义外部函数和变量报错这件事最初我定义了一个\(cmp\)函数用来对\(vector\)排序,和一个全局变量\(unordered\_map\)用来记录元素个数......
  • Vue 组件插槽
    默认插槽的定义与使用<!--组件test定义--><template><button><slot>提交</slot></button></template><!--父组件调用--><template>......
  • vue中循环table表格数据,可编辑的列表(新增、删除、修改)
    原文链接:https://blog.csdn.net/qq_24441205/article/details/1261426691.如何循环如下图table表格数据(注:emerResponseDetail为整个列表定义的数据对象)因"作业人员"为......