函数参数视为未声明

时间:2010-05-31 17:55:15

标签: c

我已经准备好了这个不适合我的简单例子

#include <stdio.h>
#include <stdlib.h>

FILE *fp;
char filename[] = "damy.txt";

void echo (char[] text)
{
    fp = fopen(filename, "a");
    fwrite(text, 1, strlen(text), fp);
    fclose(fp);
    printf(text);
}

int main ()
{
    echo("foo bar");
    return 0;
}

它应该写入命令窗口和文件。但是,这会产生编译错误 - 未声明echo()中使用的text。 c需要另一个变量声明吗?

4 个答案:

答案 0 :(得分:5)

使用char text[]char* text,而不是char[] text

答案 1 :(得分:2)

该行:

void echo (char [] text )

应该是:

void echo (char text [])

你需要:

#include <string.h>

获取strlen函数的声明。

答案 2 :(得分:0)

我很确定你应该做“char *”而不是“char []”

答案 3 :(得分:0)

显然语法

char[] var;

是一种javaism。在C中它应该是char var[]。此外,您必须添加#include <string.h>