Мне понравилась идея иметь свою собственную функцию sprintf без bloatware string.h или stdio.h.
#define sprintf(x) my_sprintf(x)
void my_sprintf(const char * string);
int main(void)
{
sprintf("abc");
}
Это мои флаги LD:
LDFLAGS += -lgcc
LDFLAGS += --specs=nano.specs
LDFLAGS += -mthumb
LDFLAGS += -mcpu=cortex-m4
# LDFLAGS += --gc-sections
# LDFLAGS += -nostartfiles
# LDFLAGS += -nodefaultlibs
# LDFLAGS += -gc-sections
Как вы видите, у меня отключены опции nostartfiles и nodefaultlibs. Таким образом, даже если бы у меня была идея включить string.h или stdio.h, компилятор мог бы найти определение / ссылку на функцию sprintf.
Так что я хотел бы знать, что если #define все равно будет ссылаться на «переопределение», если оно совпадает с именем существующей функции.
Любая помощь приветствуется.