我正在尝试使用适用于x86_64架构的AndroidNDK编译Lame声音库。对于未定义的对bcopy和index的引用,我收到以下链接错误:jni/libmp3lame/encoder.c:471:error:undefinedreferenceto'bcopy'jni/libmp3lame/encoder.c:476:error:undefinedreferenceto'bcopy'jni/libmp3lame/id3tag.c:1125:error:undefinedreferenceto'index'jni/libmp3lame/newmdct.c:1036:error:und
有什么理由使用非标准的bzero()和bcopy()而不是memset()和在Linux环境中使用memcpy()?我听到很多人说它们更适合Linux编译器,但没有看到比标准函数有任何优势。它们是否比标准的更优化,或者它们是否有任何行为的特殊性,它们是首选的? 最佳答案 虽然bzero和bcopy函数不是ISOC(我假设您在将它们称为非标准时所说的实际标准),但它们是一个POSIX标准的东西,尽管它们早于ISO和POSIX。并注意使用"is"这个词-这些函数在POSIX.1-2001中已弃用,并在POSIX.1-2008中最终删除,
有什么理由使用非标准的bzero()和bcopy()而不是memset()和在Linux环境中使用memcpy()?我听到很多人说它们更适合Linux编译器,但没有看到比标准函数有任何优势。它们是否比标准的更优化,或者它们是否有任何行为的特殊性,它们是首选的? 最佳答案 虽然bzero和bcopy函数不是ISOC(我假设您在将它们称为非标准时所说的实际标准),但它们是一个POSIX标准的东西,尽管它们早于ISO和POSIX。并注意使用"is"这个词-这些函数在POSIX.1-2001中已弃用,并在POSIX.1-2008中最终删除,