Witam.
Napisałem własną funkcję strcpy gdyż po skompilowaniu program zajmuje ok 1kb mniej.
Jest to spora różnica gdyż dla mnie cenny jest każdy bajt(programuję procesorki).
Zrobiłem sobie 2 pliki:
sstring.h
#ifndef __SSTRING_H__
#define __SSTRING_H__
int dlen(unsigned int val);
int strlen(char * val);
int atoi(char * val);
int itoa(char * dst, unsigned int src);
void strcpy(char * dst, char * src);
#endif
sstring.c(frag)
//...//
void strcpy(char * dst, char * src){
while(*dst = *src){
dst++;
src++;
}
}
//...//
Wszystko ładnie się kompiluje tylko dostaje warninga:
./include/sstring.h:7: warning: conflicting types for built-in function 'strcpy'
Gdy wywale funkcje strcpy i prototyp, na jego miejsce wchodzi strcpy z pakietu gcc(i plik wynikowy więcej zajmuje), chociaż nigdzie nie includuje żadnych bibliotek itp(tylko własne).
Zdaje mi się że te strcpy siedzi już w tym kompilatorze i po odczytaniu prototypu mojego strcpy odnosi się do tego strcpy gcc'owego.
Co na to poradzić? Da się jakoś zrobić undef "systemowego" strcpy?