- 打卡等级:以坛为家I
- 打卡总天数:312
- 最近打卡:2025-03-11 13:20:13
荣誉版主
- 积分
- 5395
|
发表于 2024-3-20 15:18:01
|
显示全部楼层
/*--------------------------------------------------------------------------
STRING2.H
String functions.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __STRING2_H__
#define __STRING2_H__
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned int size_t;
#endif
#ifndef NULL
#define NULL ((void *) 0L)
#endif
#pragma SAVE
#pragma REGPARMS
extern char *pploadlp (long l, char **p);
extern char *ploadcp (char c, char *s);
extern int iloadcp (char c, char *s);
extern char cloadcp (char c, char *s);
extern char *ploadp (char *s);
extern int iloadp (char *s);
extern char cloadp (char *s);
/* extern char *strcat (char *s1, char *s2); */
#define strcat(dst, src) strcat1a ((long)src, dst)
extern char *strcat1a (long dst, char *src);
/* extern char *strncat (char *s1, char *s2, int n); */
#define strncat(dst, src, n) (!(ACC^ACC) ? ploadp (src) : strncat1 (n, dst))
extern char *strncat1 (int n, char *dst);
extern char strcmp (char *s1, char *s2); // (char *R0R4R5, char *R1R2R3)
/* extern char strncmp (char *s1, char *s2, int n); */
#define strncmp(s1, s2, n) (char)(!(ACC^ACC) ? cloadp (s1) : strncmp1 (n, s2))
extern char strncmp1 (int n, char *s2);
extern char *strcpy (char *s1, char *s2); // (char *R0R4R5, char *R1R2R3); *s2-->*s1
/* extern char *strncpy (char *s1, char *s2, int n); */
#define strncpy(dst, src, n) (!(ACC^ACC) ? ploadp (dst) : strncpy1 (n, src))
extern char *strncpy1 (int n, char *src);
extern int strlen (char *);
extern char *strchr (const char *s, char c); // (const char *R1R2R3, char R5)
extern int strpos (const char *s, char c); // (const char *R1R2R3, char R5)
extern char *strrchr (const char *s, char c); // (const char *R1R2R3, char R5)
extern int strrpos (const char *s, char c); // (const char *R1R2R3, char R5)
/* extern int strspn (char *s, char *set); */
#define strspn(s, set) strspn1a ((long)s, set)
extern int strspn1a (long s, char *set);
/* extern int strcspn (char *s, char *set); */
#define strcspn(s, set) strcspn1a ((long)s, set)
extern int strcspn1a (long s, char *set);
/* extern char *strpbrk (char *s, char *set); */
#define strpbrk(s, set) strpbrk1a ((long)s, set)
extern char *strpbrk1a (long s, char *set);
/* extern char *strrpbrk (char *s, char *set); */
#define strrpbrk(s, set) strrpbrk1a ((long)set, s)
extern char *strrpbrk1a (long s, char *set);
/* extern char *strstr (char *s, char *sub); */
#define strstr(s, sub) strstr1a ((long)sub, s)
extern char *strstr1a (long s, char *sub);
extern char *strtok (char *str, const char *set);
/* extern char *strtok_s (char *str, const char *set, char **save_ptr); */
#define strtok_s(s, set, save_ptr) (!(ACC^ACC) ? pploadlp ((long)s, (char**)save_ptr) : strtok_s1 (set))
extern char *strtok_s1 (const char *set);
extern char memcmp (void *s1, void *s2, int n); // (void *R0R4R5, void *R1R2R3, int R6R7)
extern void *memcpy (void *s1, void *s2, int n); // (void *R0R4R5, void *R1R2R3, int R6R7); *s2-->*s1
extern void *memchr (void *s, char val, int n); // (void *R1R2R3, char R5, int R6R7)
/* extern void *memccpy (void *s1, void *s2, char val, int n); */ // *s2-->*s1
#define memccpy(dst, src, c, n) (!(ACC^ACC) ? ploadcp (c, src) : memccpy1 (n, dst))
extern void *memccpy1 (int n, void *dst); // *s2-->*s1
extern void *memmove (void *s1, void *s2, int n); // (void *R0R4R5, void *R1R2R3, int R6R7); *s2-->*s1
extern void *memset (void *s, char val, int n); // (void *R1R2R3, char R5, int R6R7)
#pragma RESTORE
#endif
|
|