#define STR_LEN 1023
(1) char str[STR_LEN + 1]="";
(2) char str[STR_LEN + 1]={'\0'};
(3) char str[STR_LEN + 1];
str[0] = '\0';
(4) char str[STR_LEN + 1];
str[0] = 0;
(5) char str[STR_LEN + 1];
memset(str, 0 ,sizeof(str));
第(1)(2)(5)种方式是整体清0了整个缓冲区,效率较低;
如果数组的size非常大,那么这三种方式将会造成很大的开销。
而第(3)和第(4)种方式是只将str数组的第一个元素初始化为0,效率高;
szName[0] = '0' ; // Warning 4195
Possible confuse digit '0' or zero-terminate '\0' or letter 'O'
//混淆数字0 和 字符串结尾字符 \0 ,建议直接使用 0 即可
推荐用法:
if (0 != pcUserName[0]) // 推荐:安全 可靠
错误用法:
if (0 == strlen(pcUserName))
Warning 4170 Function 'strlen' is unnecessary or duplicate
if('0' == pcUserName[0])
同上
Possible confuse digit '0' or zero-terminate '\0' or letter 'O'