开发平台(Platform): (Ex: Win10, Linux, ...)
linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC 10.1
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
n/a
问题(Question):
大家好,最近看到了一张大约 10 年前的考卷,
上面有一个题目,就是一个简单的 C 语言,
大概是这样
int func_1(int a){
int func_2(int num){
return num*num;
}
return func_2(a);
}
int main(){
printf("a = %d\n" , func_1(10) );
return 0;
}
我的问题是,那张考卷上的答案写说“这题的 C 程式无法编译”
,
可是我用 GCC 自己照着考卷写,却可以编译,且答案都正确
那请问这样问题是出在那?
有可能 10 年前的 GCC 无法编译这样的程式吗?
还是有可能是别的可能?
那个答案写错吗?
但是该国家考试的考卷,并没有更正该题错误
所以想问该怎么理解这个问题??
另外想请问一下
像这样子把 function 写在 function 里面,
在别的语言很常见到这样的写法,
例如:JavaScript
但是在 C 语言里面倒是第一次看到有人这样写,而且还是在考卷上
在之前阅读过的 C 语言的教学书中,没看过有人这样教,
请问 C 语言真的可以这样写吗?
有没有错误的可能?
喂入的资料(Input):
皆正确,没问题
预期的正确结果(Expected Output):
正确
错误结果(Wrong Output):
无,仅讨论观念问题
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
上述程式码
补充说明(Supplement):
n/a