C Hello World Программа в подпрограмме - PullRequest
1 голос
/ 08 декабря 2011
#include <stdio.h>
#include <stdlib.h>

void message(char m)
{
print("Hello\n");
}

int main()
{
message(m);    
}

Сообщение об ошибке при попытке скомпилировать

danielc@Ubuntu11:$ gcc Messagef.c -o Messagef
    Messagef.c: In function ‘main’:
    Messagef.c:11:9: error: ‘m’ undeclared (first use in this function)
    Messagef.c:11:9: note: each undeclared identifier is reported only once for each function it appears in

Я знаю, что делаю «глупую» ошибку, но я просто вижу, где происходит ошибка

Ответы [ 5 ]

5 голосов
/ 08 декабря 2011

Ваша функция принимает параметр char, но никогда не использует его.Самое простое решение - удалить неиспользуемый параметр:

#include <stdio.h>

void message()
{
    printf("Hello\n");
}

int main()
{
    message();    
    return 0;
}

В качестве альтернативы измените свой метод на использование параметра и передайте символ в качестве аргумента:

#include <stdio.h>

void message(char m)
{
    printf("Hello%c\n", m);
}

int main()
{
    message('!');    
    return 0;
}

Посмотрите, как это работаетонлайн: ideone

1 голос
/ 08 декабря 2011

переменная "m", переданная вами в функцию сообщения, не была определена до ее передачи.

определите переменную m над сообщением () или передайте символьный литерал в функцию

1 голос
/ 08 декабря 2011
  1. Объявите m в своем основном (char m = '?';)
  2. Попробуйте "printf" вместо "print"
0 голосов
/ 08 декабря 2011

поочередно вы можете инициализировать m сообщением Hello. передайте указатель на сообщение функции, а затем напечатайте в функции сообщения, примерно так:

void message(char *msg)
{
printf("%s", msg);
}

int main()
{
char *m = "Hello";
message(m);
return 0;
}
0 голосов
/ 08 декабря 2011

Ваша функция ожидает символ, и вы передаете m, не объявляя его. Сначала нужно объявить m так:

char m = 'a';

А затем вызвать функцию. Кстати, вы ничего не делаете с этой переменной, так что она все равно избыточна.

Поднимите книгу на языке Си и начните следовать за ней.

...