将有符号字符读取为无符号 - 类型提升
考虑这个小程序: #include int main() { char c = 0xFF; printf("%d\n", c); return 0; } 它的输出是 -1,正如预期的那样(考虑到 char 在我的 系统…
当二元运算符两侧的符号不同时,提升规则如何工作?
考虑以下程序: // http://ideone.com/4I0dT #include #include int main() { int max = std::numeric_limits::max(); unsigned int one = 1; unsigne…
理解 getopt() 示例。 int 与 char 的比较
大家好,我希望你能帮助我理解为什么 getopt 使用 int 以及 getopt 中 optopt 变量的处理。对于 C++ 来说还很陌生。 查看getopt,optopt被定义为一个…
两个字符相加产生 int
我制作了一个简单的程序,并使用 GCC 4.4/4.5 对其进行了编译,如下所示: int main () { char u = 10; char x = 'x'; char i = u + x; return 0; } g…
C 中整数提升和整数转换之间有什么区别?
C++ 标准的 4.5 节(整数提升)讨论了将整数类型转换为更高级别类型的具体情况。 C++ 标准的第 4.7 节(积分转换)开头为(第 4.7.1 条): 整数类型…
制作普通 int 64 位会破坏很多合理的代码吗?
直到最近,我还认为大多数系统实现者/供应商即使在 64 位机器上也保留普通 int 32 位的决定是一种权宜之计。对于现代 C99 固定大小类型(int32_t 和 u…
面试问题中的这个位操作代码有什么问题?
我正在查看此页面: http://www.devbistro.com/ tech-interview-questions/Cplusplus.jsp,并且不明白这个问题: 以下代码可能存在什么问题? 长值; …
如果 char c = 0x80,为什么 printf("%d\n", c << 1) 输出 -256?
#include int main(void) { char c = 0x80; printf("%d\n", c << 1); return 0; } 在本例中,输出为 -256。如果我写 c << 0 则输出为 -128。 我不明白…
算术运算期间的数据类型提升:-1 < (unsinged int) 1 == false
main() { if ( -1 < (unsigned char) 1 ) printf("less than"); else printf("NOT less than"); } 打印小于。因为,(unsigned char) 1 被转换为 (sign…
通过引用传递和返回参数时的整体提升?
我正在阅读一些有关重载解析的内容,发现了一些让我困扰的内容...在以下代码中: int const& MaxValue(int const& a, int const& b) { return a > b ?…
C:8x8->整数提升保证 16 位乘法精度?
我试图弄清楚 C 标准(C90,尽管我正在研究 Derek Jones 的带注释的 C99 书)是否保证我在将两个无符号 8 位值相乘并存储为 16 位结果时不会丢失精度…
- 共 1 页
- 1