将ITOA与整数一起使用.设置缓冲区的限制
using itoa with an integer . Setting limits of a buffer
我正在使用 itoa
浏览此示例,并想了解更多有关语句
char buffer [sizeof(int)*8+1];
作者为什么要进行[sizeof(int)*8+1]
?我了解sizeof(int)
,但是作者为什么要进行*8+1
?
这是代码
#define _OPEN_SYS_ITOA_EXT
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [sizeof(int)*8+1];
printf ("Enter a number: ");
if (scanf ("%d",&i) == 1) {
itoa (i,buffer,DECIMAL);
printf ("decimal: %sn",buffer);
itoa (i,buffer,HEX);
printf ("hexadecimal: %sn",buffer);
itoa (i,buffer,OCTAL);
printf ("octal: %sn",buffer);
}
return 0;
}
我从这里得到了这个示例
如果您有 int
,则其二进制数字的数量为 sizeof(int) * CHAR_BIT
。由于通常CHAR_BIT
是8,只要char buffer [sizeof(int)*8+1];
就会进行浏览,可以存储有效的C弦乐所需的二进制数字和终止的null字符。
这是C风格的字符串。这些字符串是无效的。例如字符串" Hello"将包含字符'H','e','l','l','o'和' 0'。
1用于null字符' 0'。
相关文章:
- Vulkan 中的动态顶点缓冲区格式设置
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 设置缓冲区参数时CL_INVALID_ARG_VALUE
- Vulkan:为什么主命令缓冲区和辅助命令缓冲区都需要设置帧缓冲区和渲染过程
- GLSL 计算着色器 使用查找表设置缓冲区会导致不写入任何数据,与其他数据设置相同的缓冲区有效
- 通过行和列设置控制台屏幕尺寸和屏幕缓冲区
- 将ITOA与整数一起使用.设置缓冲区的限制
- 如何为文本和箱缓冲区设置 WSABUF.buf
- stringstream->rdbuf()->pubsetbuf 未设置缓冲区
- 如何在 Node.js 中设置最大缓冲区大小
- 谷歌协议缓冲区,如何设置自定义类型的字段
- GetDIBits 将图像缓冲区设置为所有 0(全黑)
- 正在将缓冲区/指针设置为null
- 如何确定/设置套接字缓冲区大小
- Qt - 如何设置音频播放从缓冲区的开头开始
- setsockopt() 在设置大套接字 recv 缓冲区时不返回错误
- 在谷歌协议缓冲区中设置重复字段时出错
- 当在emacs中设置断点时,源缓冲区被隐藏
- glGenBuffers 不设置缓冲区
- 如何在协议缓冲区中设置嵌套消息的字段