出于好奇心,我想编写用于替换标准C库中某些函数的最小代码。到目前为止,我已完成了
它是否使用宏或实际函数?
如果需要回答,我正在使用32位x86上的
printf()
、strlen()
、strcpy()
、memcpy()
、memset()
等函数的替代,但当我尝试使用printf函数时,我不知道如何实现stdarg.h
!有什么方法可以实现吗?它是否使用宏或实际函数?
如果需要回答,我正在使用32位x86上的
gcc
或clang
编译器。
float.h
、iso646.h
、limits.h
、stdarg.h
、stdbool.h
、stddef.h
和stdint.h
,并不是一个很好的练习,因为这些的实现更可能依赖于编译器或架构特定的行为,并且可能不具有可移植性。 - icktoofaystdarg.h
可能是最难决定重新实现的东西之一,仅次于setjmp.h
。这两个都需要了解编译器、架构和其他实现的低级细节,并且根据架构和其他因素,可能需要至少部分地使用汇编语言而不是纯 C 来实现。 - icktoofay