| 
				打卡等级:以坛为家I打卡总天数:312最近打卡:2025-03-11 13:20:13   荣誉版主 
 
	积分5514 
 | 
 
 发表于 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
 
 
 
 | 
 |