这个警告是因为`func()`函数接受的参数类型是`char *`,而你传递的是`unsigned char`数组。虽然C语言中`char`和`unsigned char`都表示字符类型,但它们在指针类型上是不同的。
要修复这个警告,你可以将`encrypt`数组声明为`char`类型而不是`unsigned char`类型。另外,可以省略`func()`函数,因为它仅仅返回输入的字符串。
下面是修改后的代码:
- #include <stdio.h>
- #include <string.h>
- #include "md5.h"
- #define MAX 1024
- int main(void)
- {
- int i;
- char encrypt[MAX];
- unsigned char decrypt[16];
- printf("请输入密码:");
- scanf("%s", encrypt);
- printf("你输入的密码是:%s\n", encrypt);
- printf("加密的密码是:");
- MD5_CTX md5;
- MD5Init(&md5);
- MD5Update(&md5, (unsigned char*)encrypt, strlen(encrypt));
- MD5Final(&md5, decrypt);
- for (i = 0; i < 16; i++)
- {
- printf("%02x", decrypt[i]);
- }
- putchar('\n');
- return 0;
- }
复制代码
这样修改后代码应该能够正常运行,并且不会再有警告信息输出。希望对你有帮助!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。