初始化缓冲区的正确方法
The correct way to initialize a buffer
以下哪一个是将缓冲区初始化为零的正确方法?
WCHAR szBuffer[100]={};
WCHAR szBuffer[100]={0};
WCHAR szBuffer[100]={'[=10=]'};
WCHAR szBuffer[100]{};
WCHAR szBuffer[100];
wmemset(szBuffer, '[=10=]', 100);
它们都是等价的。
不过我会避免使用 (2) 和 (3),因为它们会给某些人一种错误的印象,即您可以将任何字符放在那里来填充数组,而实际上它只控制第一个字符数组,其余总是归零。
以下哪一个是将缓冲区初始化为零的正确方法?
WCHAR szBuffer[100]={};
WCHAR szBuffer[100]={0};
WCHAR szBuffer[100]={'[=10=]'};
WCHAR szBuffer[100]{};
WCHAR szBuffer[100];
wmemset(szBuffer, '[=10=]', 100);
它们都是等价的。
不过我会避免使用 (2) 和 (3),因为它们会给某些人一种错误的印象,即您可以将任何字符放在那里来填充数组,而实际上它只控制第一个字符数组,其余总是归零。