我在程序中使用SDBM哈希函数,并对函数定义有疑问,转载如下:
unsigned char *
我通过反复试验理解该函数期望static unsigned long
sdbm(unsigned char *str)
{
....
}
,但为什么要将它放在括号之后和大括号之前?我不知道这是一个选项,我找不到任何东西告诉我为什么它不是这样写的:
# 38 data frames all named ExperimentX, with X 1:38
for(i in 1:38) {
nextDataFrame <- paste0("Experiment",i)
Collection$paste0("Experiment",i) <- nextDataFrame
}
当然,如果我将它修改为这样,那么该功能似乎仍能很好地工作,那么为什么呢?有什么区别?
答案 0 :(得分:3)
这是K&R method of function definition,没有错,但已经过时了。这是ISO前时代的功能定义方式。
从技术上讲,
static unsigned long
sdbm(str)
unsigned char *str;
{
与
完全相同static unsigned long sdbm ( unsigned char *str ) {