【发布时间】:2015-09-13 14:26:45
【问题描述】:
#include <stdio.h>
void m();
void n() {
m();
}
void main() {
void m() {
printf("hi");
}
}
编译时出错
"对 m 的未定义引用"
显示。指的是哪个m?
【问题讨论】:
-
首先你应该知道C不支持嵌套函数,如果它适合你,那是因为你的编译器允许它,但它不是可移植的。然后考虑范围,您不会期望在
main函数中定义的局部变量在全局范围内可用吗? -
只有一个 m 没有定义——在 ANSI C 中也没有嵌套函数
标签: c function debugging compiler-errors undefined-reference