此函数声明中是否存在语法错误?

时间:2018-07-30 04:46:35

标签: c

这是从一本教科书上

/* This function locates the address of where a new structure
   should be inserted within an existing list.
   It receives the address of a name and returns the address of a
   structure of type NameRec
*/
struct NameRec *linear Locate(char *name)
{
...
}

我知道它会返回指向结构NameRec的指针。为什么在其中存在“线性”?为什么在“线性”和“定位”之间存在空格?

2 个答案:

答案 0 :(得分:3)

#define linear

即使不是以前,也可以使在语法上正确(但是,从技术上讲,您可能需要事先#undef linear以避免可能的宏定义冲突)。

这完全取决于代码的上下文,您未显示。从目前的情况来看,在编译器命令行上没有诸如-Dlinear=之类的标头包含或定义,如果没有扩展名,它将无法在符合标准的环境中进行编译。

当然,最好的告诉方法就是尝试实际编译事物,然后看看会发生什么:-)

鉴于第13章的solutions link(您要问的那个)在解决方案中没有提到linear一词,我会说是可以肯定地说您的书是不正确的。我会考虑与作者联系(显然目前正在新泽西州的FDU工作)以解决问题。

答案 1 :(得分:2)

这是本书中的错字。在此处查看定位功能:

https://users.ipfw.edu/chansavj/ACY2017/ANSI_C/ANSI_C_4thEd/Solutions%20to%20Exercises%20(Windows)/Solutions/83556-0s/Ch13/pgm13-5ex3.c

(在评论中由ta.speot.is发布)