Аргумент функции рассматривается как необъявленный - PullRequest
0 голосов
/ 31 мая 2010

Я подготовил этот простой пример, который не работает для меня

#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;
}

Предполагается записывать как в командное окно, так и в файл. Однако это приводит к ошибке компиляции - text, используемый в echo (), не объявляется. Требуется ли еще одно объявление переменной?

Ответы [ 4 ]

5 голосов
/ 31 мая 2010

Используйте char text[] или char* text, а не char[] text.

2 голосов
/ 31 мая 2010

Линия:

void echo (char [] text )

должно быть:

void echo (char text [])

А вам нужно:

#include <string.h>

чтобы получить объявление функции strlen.

0 голосов
/ 31 мая 2010

Четко синтаксис

char[] var;

это яваизм. В C это должно быть char var[]. Кроме того, вы должны добавить #include <string.h>

0 голосов
/ 31 мая 2010

Я почти уверен, что вы должны делать "char *", а не "char []"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...