C函数调用:了解“隐式int”规则

如果“函数”是分别编译的,则不会检测到不匹配,“函数”将返回一个将main视为int的双精度...根据我们所说的关于声明如何必须与定义匹配的说法,这可能似乎令人惊讶。可能会发生不匹配的原因是,如果没有函数原型,则该函数会通过其在表达式中的首次出现来隐式声明,例如


    sum += "the function"(line);

如果在表达式中出现一个之前未声明的名称,并在其后加上左括号,则上下文将其声明为函数名称,假定该函数返回一个int值,并且不假设其参数成立。


对于这个模棱两可的问题,我事先表示歉意,但这意味着什么呢?


顺便说一下,这是Brian W. Kernighan和Dennis M. Ritchie的C编程语言第二版的第73页第4.3章。


萧十郎
浏览 580回答 3
3回答

当年话下

只是说明,如果编译器遇到了调用未知函数的代码,那么它将隐式地将其视为已看到已声明形式的原型 int unknown();
打开App,查看更多内容
随时随地看视频慕课网APP