长见识

长见识柳校长讲话,讲教育。
我坐第一排,困的时候看刘老师在那儿批C语言学生的报告。
一向对计算机系学生的报告心存偏见,就拿来看。声明一:柳校长的讲话重要而啥啥。我困的原因可能是病理性的,只要不是我讲,
五分钟准睡着,不可控。本着挑刺的心态读实验报告,当然不会放过每个暇疵。
实验目的、实验步骤、实验结果一如既往的缺少。
不过我挑的是另一个毛病,代码里,函数的声明放在了main函数之中。我指出。
刘老师说,这是允许的。并补充道:这是声明,不是定义。是的,C函数中不允许嵌套定义,但是我没有想到可以放个声明。
以前见的代码都是声明在最前,或者干脆定义也在最前。我回家做了个实验,如下:--------------------------
int main()
{
int foobar();
foobar();
return 0;
}int foobar()
{
printf("test");
}--------------------------结果真的编译通过了。
长见识了。我一想,然后我把
int foobar();
放在了
foobar();
之后。即调用在先,声明在后。结果也通过了。这说明:不必声明?
我注释了
int foobar();变成了这样:
--------------------------
int main()
{
foobar();
return 0;
}int foobar()
{
printf("test");
}
--------------------------结果依然能编译通过!这说明:不必声明?我就把这事放下了。事前查了下,非官方的手册,在函数内的声明是允许的。其益处在于,可以局部
的声明函数,避免污染symbol空间。今天坐校车,又见到了刘老师。
请教。刘老师说:只有函数类型(返回值类型)是int型的,才可以不声明直接调用。替换法告诉我们,一次只换一个部件。
当然……偶而也有同时出现两个知识点都不知道的时候啊。又长见识了一次。总结。见识1. 函数可以在函数内声明。作用域在函数内。见识2. int型函数可以不声明直接调用。不过,作为代码规范,反对以上两条见识应用在项目中。

Leave a Reply

Your email address will not be published. Required fields are marked *