C++之C++11字符串字面量后缀总结(二百四十八)

news/2024/7/7 18:28:41

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:在Android代码中:例如:“–display-id"s、”–dispsync"s等这种用法会让开发者疑惑,其实这是C++11字符串字面量后缀的用法,用作类型转换,下文来讲解它的用法。
在这里插入图片描述

2.C++11字符串字面量后缀介绍

  • C++11引入了字符串字面量后缀,可以用于在字符串字面量的末尾添加后缀以指定其类型。这样做的好处是增强了类型安全性,使得字符串字面量可以根据后缀的类型进行解析和处理。

  • 以下是一些常用的字符串字面量后缀:

  1. 后缀"s":用于表示字符串字面量,其类型为const char[]。例如:"hello"s表示类型为const char[]的字符串。

  2. 后缀"u8":用于表示UTF-8字符串字面量,其类型为const char[]。例如:"你好"u8表示类型为const char[]的UTF-8字符串。

  3. 后缀"u":用于表示宽字符字符串字面量,其类型为const wchar_t[]。例如:L"hello"u表示类型为const wchar_t[]的宽字符字符串。

  4. 后缀"U":用于表示Unicode字符串字面量,其类型为const char32_t[]。例如:U"hello"表示类型为const char32_t[]的Unicode字符串。

  5. 后缀"L":用于表示宽字符串字面量,其类型为const wchar_t[]。例如:L"hello"表示类型为const wchar_t[]的宽字符串。

这些字符串字面量后缀提供了更灵活的字符串字面量表示方式,可以根据需要选择适合的类型和编码方式。

3.代码实例

1.后缀s:用于创建 std::string 对象

#include <iostream>
#include <string>
#include <string_view>

using namespace std::literals::string_literals;

int main() {
    std::string message = "Hellow"s;
    std::cout << message << std::endl;
    return 0;
}

2.后缀u8:表示UTF-8字符串字面量,其类型为const char[]

#include <iostream>
#include <string>
#include <string_view>

using namespace std::literals::string_literals;

int main() {
    const char* str2 = u8"你好";
    std::cout << str2 << std::endl;
    return 0;
}

3.后缀L: 用于表示宽字符串字面量,其类型为const wchar_t[]

#include <iostream>
#include <string>
#include <string_view>

using namespace std::literals::string_literals;

int main() {
    const wchar_t* str3 = L"hello";
    std::wcout << str3 << std::endl;
    return 0;
}

4. U 后缀用于创建 UTF-32 编码的字符串:

#include <iostream>
#include <string>

int main() {
    std::wstring wideString = L"Hello";
    std::wcout << wideString << std::endl;
    return 0;
}

5. i 后缀用于创建 std::complex 复数对象:

#include <iostream>
#include <complex>

int main() {
    std::complex<double> complexNumber = 1.0 + 2.0i;
    std::cout << complexNumber << std::endl;
    return 0;
}

6. if 后缀用于创建 std::complex 复数对象,其中虚部为浮点数:

#include <iostream>
#include <complex>

int main() {
    std::complex<float> complexNumber = 1.0 + 2.0if;
    std::cout << complexNumber << std::endl;
    return 0;
}

http://lihuaxi.xjx100.cn/news/1723445.html

相关文章

ES6新特性:变量的解构赋值

文章目录 1 数组的解构赋值1.1 基本用法1.2 交换变量的值1.3 注意事项 2 对象的解构赋值2.1 基本用法2.2 属性重命名2.3 注意事项 ES6允许按照一定模式&#xff0c;从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这被称为解构&#xff08;Destructuring&#xff…

stable-diffusion-webui环境部署

stable-diffusion-webui环境部署 1. 环境创建2. 安装依赖库3.下载底模4.运行代码5. 报错信息报错1报错2 1. 环境创建 创建虚拟环境 conda create -n env_stable python3.10.0进入虚拟环境 conda activate env_stableclone源码 git clone https://github.com/AUTOMATIC1111/stab…

Zabbix监控IP地址是否畅通

一、fping安装 1.下载fping安装包 wget http://www.fping.org/dist/fping-4.0.tar.gz下载失败的&#xff0c;请看 https://download.csdn.net/download/qq_45748758/88477979 资源包已上传&#xff0c;免费 2.解压安装包 tar -xf fping-4.0.tar.gz3.安装 cd fping-4.0 ./c…

SSL证书对于SEO优化的重要性

在当今时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于企业和网站来说是至关重要的。而SSL证书在SEO优化中起着重要的作用。SSL证书是一种用于加密数据传输的安全协议&#xff0c;它为网站提供了安全连接&#xff0c;使用户可以放心地与网站进行交互。 首先&…

pk答题小程序怎么做?功能有哪些?为您揭秘!

“微信答题小程序&#xff08;仿头脑王者源码&#xff09;在线教育考试pk答题小程序”是一款专业性的答题小程序&#xff08;软著登记号&#xff1a;4078210号&#xff09;&#xff0c;主要功能有&#xff1a;个人每日答题、邀请好友一对一PK答题、排位升级PK答题、专题1V1pk答…

按键LED测试【FPGA】

按钮&#xff1a; 按钮是区分输入输出的&#xff0c; LED配置成输入&#xff0c;是不会亮的。 //timescale 1s/1ns // 【】是预编译&#xff0c;类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns//类型声明 module LED //跟PLC的FB功能块一样&#xff0c;使用前需要实…

【Leetcode】200. 岛屿数量

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…

[UDS] --- WriteDataByIdentifier 0x2E

1 0x2E功能描述 根据ISO14119-1标准中所述&#xff0c;诊断服务2E主要用于Client向Server(ECU)通过DID的方式写入相关的数据。 2 0x2E应用场景 一般而言&#xff0c;对于2E诊断服务&#xff0c;主要应用场景为以下场合&#xff1a; 在整车下线的过程中写入相关配置信息&…