我正在使用GCC 4.6.0(在其他无法识别的平台上)。
我正在使用crypt()
函数来加密密码。
我以前从未使用过该功能,所以我 checkout 了主页:
man 3 crypt
它说包括
unistd.h
header 。但是,当我这样做时,我得到了
crypt
函数的隐式警告。warning: implicit declaration of function ‘crypt’ [-Wimplicit-function-declaration]
我做了一些搜索,发现您必须包括
crypt.h
。但是,为什么在手册页中没有这么说呢? 最佳答案
它还在我的手册页中显示了#define _XOPEN_SOURCE
(在包括unistd.h
之前)。因此,您可能应该添加它以暴露crypt
的声明。
编辑
我刚试过在完成技巧之前,先添加unistd.h
和#define _XOPEN_SOURCE
。仅包括它是不够的。
使用
gcc version 4.6.0 20110429
GNU C Library stable release version 2.13
调查
unistd.h
:/* XPG4.2 specifies that prototypes for the encryption functions must
be defined here. */
#ifdef __USE_XOPEN
/* Encrypt at most 8 characters from KEY using salt to perturb DES. */
extern char *crypt (__const char *__key, __const char *__salt)
__THROW __nonnull ((1, 2));
关于c - crypt()函数是在unistd.h还是crypt.h中声明的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6127921/