C 为什么我们不能在主函数中定义函数?
在下面的程序中,我尝试调用函数n和内部n,尝试调用主函数中定义的m函数,但在编译时,我得到以下错误: 为什么我会出错?请解释一下 代码如下:C 为什么我们不能在主函数中定义函数?,c,C,在下面的程序中,我尝试调用函数n和内部n,尝试调用主函数中定义的m函数,但在编译时,我得到以下错误: 为什么我会出错?请解释一下 代码如下: #include <stdio.h> void m(); void n() { m(); } void main() { n(); void m() { printf("hi"); } } 在标准C中,不能在另一个函数的范围内实现函数。请将m的实现移出主函数 你发布的代码根本不应该编译
#include <stdio.h>
void m();
void n()
{
m();
}
void main()
{
n();
void m()
{
printf("hi");
}
}
在标准C中,不能在另一个函数的范围内实现函数。请将m的实现移出主函数 你发布的代码根本不应该编译;但是,您得到的错误是因为链接器ld找不到m的实现。可以使用该函数,因为您声明了它,但缺少实现,因此无法链接 还请注意,main函数将返回int类型的值。使用void将使程序返回任意值,操作系统/shell无法从该值判断执行是否成功
#include <stdio.h>
void m();
void n() {
m();
}
int main() {
n();
return 0;
}
void m() {
printf("hi");
}
在标准C中,不能在另一个函数的范围内实现函数。请将m的实现移出主函数 你发布的代码根本不应该编译;但是,您得到的错误是因为链接器ld找不到m的实现。可以使用该函数,因为您声明了它,但缺少实现,因此无法链接 还请注意,main函数将返回int类型的值。使用void将使程序返回任意值,操作系统/shell无法从该值判断执行是否成功
#include <stdio.h>
void m();
void n() {
m();
}
int main() {
n();
return 0;
}
void m() {
printf("hi");
}
将m的函数声明移到main方法之外。将m的函数声明移到main方法之外。m在main方法之内定义。在标准C中,这是不允许的,您不能在另一个函数中定义函数 某些编译器(如gcc)允许将其作为扩展。但是这个函数是局部的,也就是说,m只存在于main内部,从外部看不到。类似地,函数中定义的变量是该函数的局部变量,不能从外部看到 你的空虚;顶部的声明声明声明存在一个名为m的全局函数,但它不存在。这就是为什么会出现链接器错误。m是在main中定义的。在标准C中,这是不允许的,您不能在另一个函数中定义函数 某些编译器(如gcc)允许将其作为扩展。但是这个函数是局部的,也就是说,m只存在于main内部,从外部看不到。类似地,函数中定义的变量是该函数的局部变量,不能从外部看到
你的空虚;顶部的声明声明声明存在一个名为m的全局函数,但它不存在。这就是为什么会出现链接器错误。m在主函数中。把它移到外面去!我知道,但我为什么会出错?我知道-显然不是。这段代码甚至不应该编译,更不用说在链接时失败了,这就是错误。void main是错误的。main应该返回int.m,它在main函数中。把它移到外面去!我知道,但我为什么会出错?我知道-显然不是。这段代码甚至不应该编译,更不用说在链接时失败了,这就是错误。void main是错误的。main应该返回int。