Ala*_*air 5 c syntax types arguments function
最近我一直在查看Steven Skiena的"算法设计手册"的在线资源中的一些C示例代码,并且对他的一些函数调用的语法感到困惑.不可否认,自从C在uni工作已经有一段时间了,但我从来没有遇到像这样的无类型函数参数:
find_path(start,end,parents)
int start;
int end;
int parents[];
{
if ((start == end) || (end == -1))
printf("\n%d",start);
else {
find_path(starts,parents[end],parents);
printf(" %d",end);
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的语法吗?这种功能声明是否有任何好处?它似乎比传统的内联类型参数更冗长.
它们被称为K&R样式定义.不要在新代码中使用它们.甚至K和R也建议您在"The C Programming Language 2ed"中远离它们.
历史记录:ANSI C和早期版本之间的最大变化是如何声明和定义函数.
参数在括号之间命名,并且在打开左括号之前声明它们的类型; 未声明的参数被视为
int.函数原型的新语法使编译器更容易检测参数数量或类型中的错误.旧式的声明和定义仍然适用于ANSI C,至少在过渡期内,但我们强烈建议您在拥有支持它的编译器时使用新表单.
| 归档时间: |
|
| 查看次数: |
1233 次 |
| 最近记录: |