我对C很陌生,仍然追求基础知识。我正在写一个非常简单的练习练习,它需要一个短语并将其反转。我确信这段代码还有其他问题,但主要是编译main.c,我不断收到错误为什么我得到格式'%s'需要'char *'类型的参数,但是....“错误在这里?
main.c:14:9:warning:格式'%s'需要参数类型char *但参数2有类型'int'命令未找到
我不知道为什么我得到该错误,有人可以帮我理解为什么?谢谢!
我的main.c
int main (int argc, char * argv [])
{
char word[] = "Happy Birthday!";
printf("%s\n", word);
reverse(word);
printf("%s\n", word);
printf("%s\n", reverse(word));
printf("%s\n", word);
system ("Pause");
return 0;
}
我reverse.c
#include<stdio.h>
#include<string.h>
char *reverse(char *word)
{
char *rev;
char *i;
char temp;
rev = word;
for (i = word; *i != '\0'; i++)
{
if (i - word > 1)
for (i--; word < i; word++, i--)
{
temp = *word;
*word = *i;
*i = temp;
}
return rev;
}
你也有关于调用未声明的函数警告'反向()'? – Barmar
您还应该收到关于函数'reverse()'的隐式声明的警告。如果没有,那么打开编译器的警告级别。如果在调用该函数的地方没有范围内的原型,编译器会假定它的返回类型是“int”。 –
@xing'reverse'在另一个单元中,最好''在'main'之前'#include“reverse.h”'' –