strcmp.c 421 B

123456789101112131415161718192021222324252627282930
  1. #include <string.h>
  2. __attribute__((used))
  3. int strcmp(const char *s1, const char *s2)
  4. {
  5. while (*s1 == *s2) {
  6. if (!*s1)
  7. return 0;
  8. ++s1;
  9. ++s2;
  10. }
  11. return *(unsigned char *)s1 - *(unsigned char *)s2;
  12. }
  13. __attribute__((used))
  14. int strncmp(const char *s1, const char *s2, size_t n)
  15. {
  16. while (*s1 == *s2 && --n) {
  17. if (!*s1)
  18. return 0;
  19. ++s1;
  20. ++s2;
  21. }
  22. return *(unsigned char *)s1 - *(unsigned char *)s2;
  23. }