避免对整个字符串数组清零
【说明】 设置字符串数组为空字符串,只需要对第一个字节赋值'\0',避免对整个空间清零。
【原理】 有效降低操作指令数,提升效率。
【注意事项】 不涉及
【案例】
优化前:
typedef struct{
char str1[0x10000];
char str2[0x10000];
int len;
}DemoStru;
DemoStru *init()
{
DemoStru *pointer = malloc(sizeof(DemoStru));
if(pointer == NULL) {
return NULL;
}
memset(pointer, 0, sizeof(DemoStru));
return pointer;
}
说明:上述大的字符串数组,整体清零,造成较大的指令开销。
优化后:
typedef struct{
char str1[0x10000];
char str2[0x10000];
int len;
}DemoStru;
DemoStru *init()
{
DemoStru *pointer = malloc(sizeof(DemoStru));
if(pointer == NULL) {
return NULL;
}
pointer->str1[0] = '\0';
pointer->str2[0] = '\0';
pointer->len = 0;
return pointer;
}
说明:改变字符串初始化方式,减少操作指令数。
父主题: 字符串