如何在C++中 #define 角色
How to #define a character in C++
我需要在C++中定义一个字符。现在我有:
#define ENQ (char)5
有没有办法定义一个字符,类似于如何使用l
后缀定义长整型(例如 5l
)?
强制转换很好,它对运行时没有影响,但您可以使用 x
转义序列直接定义任何值的字符常量,以通过十六进制字符代码指定字符 - 对于非打印或扩展字符很有用。
#define ASCII_ENQ `x5`
但在C++中,您最好使用const
(具有显式类型):
static const char ASCII_ENQ = 5 ;
或
static const char ASCII_ENQ = 'x5' ;
如果您努力实现完整的类型协议(不是真的必要)。
这将
是一个字符文字'a'
例如:
#define ALPHA 'a'
#define FIVE_CHAR '5'
您还可以使用用户定义的文字并编写如下内容:
#include <iostream>
const char operator ""_ch( unsigned long long i) {
return i;
}
int main() {
char enq = 5_ch;
char alpha = 65_ch;
cout << alpha << 'n';
return 0;
}
但是对于您可以更轻松地表达的东西来说,这有点矫枉过正:
const char ENQ = 5;
除非你真的想做一些棘手的事情,比如:
#include <iostream>
// convert a number (a figure) to its ASCII code
const char operator ""_ch( unsigned long long i) {
return i < 10 ? i + 48 : 48;
}
int main() {
char num_as_char = 5_ch;
std::cout << num_as_char << 'n';
// which outputs 5
return 0;
}
相关文章:
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 以下 C++ 代码用于 -> "#define idiv(a, b) (((a) + (b) / 2) / (b))" 是什么?
- 如何以静态代码分析友好的方式使用 #define 防护?
- C++相当于整数的 #define
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 我们可以用 C 语言嵌套 #define 和 #if 吗?
- 如何将旧的 C 样式 #define 映射与现代C++进行调整?
- 找不到 #define 的函数定义
- "#define X X"是什么意思?
- 具有文本角色扮演功能的移动系统
- 开发C++/地图中的控制台角色扮演游戏
- 使用 constexpr 替换 #define 和 #ifdef 进行条件编译
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 如何解决C++中声纳库贝静态代码分析错误"Explicitly define the missing copy constructor, move constructor .."
- c中 #define 的不足
- 如何在接触时重置我的角色位置?
- 使用 [#define & #ifdef] 跨文件激活代码块
- 为什么玩家控制器"own"偏航俯仰和滚动,但角色"owns"它的位置?
- 如何在C++中 #define 角色