说说char!=signed char!=unsigned char吧
由于前面有人说如何比较两种类型是不是一样的。受Modern C++ Design的影响(算是抄吧),写了出来,却由于找不到原来的帖子没有发表^_^
template <typename T, typename U>
struct SameType
{
static const bool isSame = false;
};
template <typename T>
struct SameType<T, T>
{
static const bool isSame = true;
};
然后我就去测试了。当测试到string和basic_string <char>时,我试着把basic_string <char>换成basic_string <unsigned char>和signed char,居然发现,只有char是真!其它两个都是假!也就是说char既不与signed char一样,也不与unsigned char一样。
但是,我记得是char和另外两个中的一种是一样的啊!于是我就从Dev-C++里换到BCC5.5里去测试,结果还是一样。(VC7搞不定命令行下的CL,就没有测了)
然后,我去翻TCPL,终于知道是这样的:三种char类型不同,但char要么与signed char行为相同,要么与unsigned char行为相同。
template <typename T, typename U>
struct SameType
{
static const bool isSame = false;
};
template <typename T>
struct SameType<T, T>
{
static const bool isSame = true;
};
然后我就去测试了。当测试到string和basic_string <char>时,我试着把basic_string <char>换成basic_string <unsigned char>和signed char,居然发现,只有char是真!其它两个都是假!也就是说char既不与signed char一样,也不与unsigned char一样。
但是,我记得是char和另外两个中的一种是一样的啊!于是我就从Dev-C++里换到BCC5.5里去测试,结果还是一样。(VC7搞不定命令行下的CL,就没有测了)
然后,我去翻TCPL,终于知道是这样的:三种char类型不同,但char要么与signed char行为相同,要么与unsigned char行为相同。
...全文
相关推荐
完美哈希函数的实现
= 0 && i % 8 == 7) cout << endl; } cout << endl; char string[20] = {0}; while (*string !
C++ Ref Card
**比较运算符**有等于`==`、不等于`!=`、小于`<`、小于等于`<=`、大于`>`和大于等于`>=`。**逻辑运算符**包括逻辑与`&&`和逻辑或`||`。
用单片机控制步进电机的程序
**按键驱动函数**: ```c void KeyDriver() { unsigned char i, j; static unsigned char backup[4][4] = { {1, 1,
C语言笔记(经典)
例如:```cchar a = -1;signed char b = -1;unsigned char c = -1;```这里的`char` 变量`a` 默认是带符号的,而`signed char`
C++大学基础教程第二章.ppt
**有符号(signed)**:默认情况下,整型都是有符号的,可以为正或负。4. **无符号(unsigned)**:表示只能存储非负整数,如`unsigned int`。


