c - 术语:前向声明与函数原型(prototype)

标签 c terminology forward-declaration function-prototypes

对我来说,在使用 C 编程语言时,这些术语本质上是同义词。在实践中,我可能更喜欢文件内原型(prototype)的“前向声明”而不是通过头文件包含的原型(prototype)的“函数原型(prototype)”。但是,当您考虑预处理后发生的情况时,这甚至是人为的区别。也许我遗漏了什么。

对于何时使用一个术语与另一个术语是否达成共识?

最佳答案

术语“原型(prototype)”是指特定的声明语法;具体来说,函数参数的数量和类型出现在声明中。给定一个 定义 的函数

int foo(int a, char *b) {...}

您可以拥有以下任何声明:

int foo();                // a declaration, but not a prototype
int foo(a, b);            // a declaration, but not a prototype
int foo(int, char *);     // a declaration and a prototype
int foo(int a, char *b);  // a declaration and a prototype

关于c - 术语:前向声明与函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496284/

相关文章:

c++ - 整个标题用于前向声明的用途是什么?

python - C和Python之间的套接字通信

c - 为什么这个条件表达式的大小是 float ?

C 使用 open()read()write() 访问文本修改它并存储在一个新文件中

c - 如何在 C 中将 float 转换为字符串而不丢失用户输入的精度?

linux - 系统调用和库调用有什么区别?

algorithm - 由 'smart lines' 链接的盒子 - 这叫什么?怎么样?

methods - 调用的方法或调用的方法?

c++ - 未修复不完整类型的声明转发

c - 为什么结构的前向声明在我的代码中不起作用?什么时候可以在C中使用?