C23 中新的 QChar* 是什么?

问题描述 投票:0回答:1

cppreference 显示了

strchr()
的这些原型:

char *strchr( const char *str, int ch );     (1)    
/*QChar*/ *strchr( /*QChar*/ *str, int ch ); (2) (since C23)

并提供第二个版本的解释:

类型通用函数等价于(1)。令 T 为非限定字符对象类型。

  • 如果
    str
    的类型为
    const T*
    ,则返回类型为
    const char*
  • 否则,如果
    str
    的类型为
    T*
    ,则返回类型为
    char*
  • 否则,行为是未定义的。

这是什么

QChar*
?这是新类型吗?

如果是这样,GCC 和/或 Clang 是否已经支持它?我可以在我自己的应用程序代码中使用它吗?

c string c23
1个回答
0
投票

多年来,

strchr()
(以及其他一些函数)采用 const char 指针参数(指向以 0 结尾的字符串),并返回指向字符串内某个位置的非常量指针。新的 Qualified Char 版本是通用函数,当传递 const char 指针时,返回 const char 指针,当传递常规 char 指针时,返回相同的值。

包含基本原理和受影响功能的完整列表的提案是 PDF ,可以在此处阅读

© www.soinside.com 2019 - 2024. All rights reserved.