我想知道是否对变量使用uint16_t
类型并想使用std::cout <<
在屏幕上打印出来,是否将其打印为数字而不是{{1} }。我在一些教程网站上读到,char
或uint8_t
所打印的内容不能保证为字符或数字。但是,我找不到标准中的任何子句或引用。我是否需要始终强制转换以确保获得所有上述类型的期望输出?
答案 0 :(得分:1)
如果实现中定义了Py_INCREF(first);
replace_field(&self->first, first);
,则uint8_t
不能是uint16_t
。原因是char
被定义为最小的可寻址值; char
明确为1。
由于要求这些可选尺寸类型精确地等于指定的尺寸,因此sizeof(char)
必须大于sizeof(uint16_t)
。而且由于sizeof(uint8_t)
不能小于sizeof(uint8_t)
,所以sizeof(char)
不能为1。因此它不能为sizeof(uint16_t)
。
当然,如果char
未定义 但定义了uint8_t
,则所有投注均无效。但是,如果您的代码已经假设uint16_t
和uint8_t
都存在,那么您可以同样假设uint16_t
不是uint16_t
。