【发布时间】:2022-10-04 03:16:20
【问题描述】:
在C 中,当一个函数被声明为void main(); 时,尝试向它输入一个参数(作为第一个也是唯一的参数)不会导致编译错误,为了防止它,函数可以声明为@987654324 @。顺便说一句,我认为这也适用于Objective C 而不适用于C++。 Objective C 我指的是类外的函数。为什么是这样?感谢您伸出援手。我想这类似于Fortran 变量,其名称以 i、j、k、l、m 或 n 开头的变量隐含为 integer 类型(除非您添加 implicit none)。
编辑:Objective C 允许这样做是因为与 C 更好的兼容性,还是类似于 C 拥有这个的原因?
注意:我保留了问题中的错误,因此不需要更改答案和 cmets。
另一个注意事项:正如@Steve Summit 和@matt (here) 所指出的,Objective-C 是 C 的严格超集,这意味着所有 C 代码也是有效的 Objective-C 代码,因此必须显示这种行为关于功能。
【问题讨论】:
-
对于“为什么?”您需要询问以这种方式决定的人。可能是为了避免破坏旧的 C 源代码。无论如何,C允许任何如果您不提供参数列表,则为数字。或者你真的有另一个答案?
标签: c objective-c function-declaration