所以,这是我 friend 的学生的代码......
#include <stdio.h>
int main(){
int hours;
int take_one_number(void);{
scanf("%d",&hours);
}
int minutes;
int take_one_number(void);{
scanf("%d",&minutes);
}
int seconds;
int take_one_number(void);{
scanf("%d",&seconds);
}
int all;
printf("%d",all=hours*3600+minutes*60+seconds);
return all;
}
好吧,它……编译……并且……嗯,工作……按照老师的要求……
我的问题:如果我没理解错的话,take_one_number
这里定义了一个变量来存储一个函数指针。为什么 GCC 和 LLVM 都没有提示这些定义中的重复标识符?
最佳答案
函数 take_one_number 声明了 3 次,但从未定义。在每种情况下,;在 (void) 结束声明之后。 scanf 语句只是 main() 内部的常规语句,被无意义的范围包围{}
关于c - 函数局部范围内变量的重复标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182267/