C子系统中的Hello World程序

时间:2011-12-08 10:43:15

标签: c subroutine

#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 个答案:

答案 0 :(得分:5)

您的函数采用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 :(得分:1)

  1. 在你的主要声明m(char m ='?';)
  2. 尝试“printf”而不是“print”

答案 2 :(得分:1)

传递给消息函数的变量“m”在传递之前尚未定义。

在message()上面定义m变量或将char文字传递给函数

答案 3 :(得分:0)

你的函数需要一个char而你传递m而没有声明它。您需要首先声明m

char m = 'a';

然后调用该函数。顺便说一句,你没有对这个变量做任何事情,所以无论如何它都是多余的。

拿起一本C语言书并开始关注它。

答案 4 :(得分:0)

交替你可以用Hello消息初始化m。将指针传递给消息功能,然后在消息函数中打印,有点像这样:

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

int main()
{
char *m = "Hello";
message(m);
return 0;
}