티스토리 뷰
반응형
배열을 사용해서 좀더 빠르게 수행하는 함수를 작성해봤습니다.
시간측정은 안해봐서 실제로도 빠른지는 모르겠습니다.
if비교문대신, 배열에 1을 넣어 덧셈만 합니다.
if비교분기가 없어, 더 빠를거라고 예상됩니다.
char strcnt_table[256];
int strcnt(TCHAR *s,TCHAR c)
{
int len=strlen(s),n=0;
strcnt_table[c]=1;
while(len>=8)
{
n+=strcnt_table[s[0]]+strcnt_table[s[1]]+strcnt_table[s[2]]+strcnt_table[s[3]]+
strcnt_table[s[4]]+strcnt_table[s[5]]+strcnt_table[s[6]]+strcnt_table[s[7]];
len-=8;
s+=8;
}
while(len>0)
{
n+=strcnt_table[s[0]];
len--;
s++;
}
strcnt_table[c]=0;
return n;
}
반응형
'C언어' 카테고리의 다른 글
stm32 tick count 1msec 수정 포인트 (0) | 2022.06.15 |
---|---|
HEX 문자열을 바이너리로 변환하는 샘플코드입니다. (0) | 2022.04.30 |
UART 데이터 수신처리 예제 코드입니다. (0) | 2022.04.30 |
BuildDateTime.exe (0) | 2022.03.24 |
RP2040 개발환경(작성중) (0) | 2022.02.02 |