所谓的静态就像调用数组这样固定了的
Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
就是strcat函数吧,我这儿也有这样的一些函数,大家给看看
/****************************************************************************/
/* strlen */
/****************************************************************************/
size_t strlen(const char *s)
{ const char *r = s - 1;
while (*++r);
return r - s;
}
/****************************************************************************/
/* strcpy */
/****************************************************************************/
char *strcpy(char *s1, const char *s2)
{ char *result = s1;
while (*s1++ = *s2++);
return result;
}
/****************************************************************************/
/* strncpy */
/****************************************************************************/
char *strncpy(char *s1, const char *s2, size_t n)
{ char *result = s1;
if (n == 0) return result;
while ((*s1++ = *s2++) && --n != 0);
if (n > 1)
{
--n;
do *s1++ = 0; while (--n);
}
return result;
}
/****************************************************************************/
/* strcat */
/****************************************************************************/
char *strcat(char *s1, const char *s2)
{ char *result = s1;
while (*s1++);
--s1;
while (*s1++ = *s2++);
return result;
}
/****************************************************************************/
/* strncat */
/****************************************************************************/
char *strncat(char *s1, const char *s2, size_t n)
{ char *result = s1;
while (*s1++);
--s1;
while (n-- != 0)
if (!(*s1++ = *s2++)) return result;
*s1 = 0;
return result;
}
/****************************************************************************/
/* strchr */
/****************************************************************************/
char *strchr(const char *s, int c)
{ do
if (*s == c) return (char *)s;
while (*s++);
return NULL;
}
/****************************************************************************/
/* strrchr */
/****************************************************************************/
char *strrchr(const char *s, int c)
{ char *result = NULL;
do
if (*s == c) result = (char *)s;
while (*s++);
return(result);
}
/****************************************************************************/
/* memchr */
/****************************************************************************/
void *memchr(const void *s, int c, size_t n)
{ const unsigned char *st = (unsigned char *)s;
unsigned char ch = c;
while (n-- != 0)
if (*st++ == ch) { return (void *)--st; }
return NULL;
}
/****************************************************************************/
/* memset */
/****************************************************************************/
void *memset(void *s, int c, size_t n)
{ unsigned char *st = (unsigned char *)s;
unsigned char ch = c;
while (n-- > 0) *st++ = ch;
return s;
}