#define __HAVE_ARCH_STRCPY
__HAVE_ARCH
的含义是什么?我不是母语人士而且我没有通过谷歌找到它的含义...(也许这个问题很愚蠢)
答案 0 :(得分:2)
通过定义__HAVE_ARCH_XXXX
预处理器令牌,它允许OS内核中的其他位置测试当前硬件平台是否支持strcpy
,memset
等功能。您会注意到,在某些平台上,定义了此标记,然后将这些函数的基本实现定义为内联函数以及令牌,因为在这些平台上,某些其他内核库或内核代码不提供该功能模块。在其他平台上,函数在其他一些代码模块中定义,并且可以在预处理器令牌之后简单地声明为extern
。
请记住,Linux中的内核本身无法访问标准libc库,因此这些函数必须与通常在与libc链接的用户域应用程序中使用的函数分开定义。因此,定义哪些标准函数以及哪些标准函数不存在非常重要,因为它可能因平台而异。
答案 1 :(得分:2)
“这个架构有strcpy()”。