在 C 中是不是有一个函数可以用作“实例方法”?

Posted

技术标签:

【中文标题】在 C 中是不是有一个函数可以用作“实例方法”?【英文标题】:Is there a term for a function that acts as an "instance method" in C?在 C 中是否有一个函数可以用作“实例方法”? 【发布时间】:2020-05-06 01:07:12 【问题描述】:

C 中没有类,但通过定义一个包含所有“类”属性的结构并通过将指向该结构的指针作为其第一个参数的函数表示其方法来创建类似的东西很简单.我正在记录此表单的头文件。

我试图弄清楚如何在不使用诸如“方法”之类的面向对象术语的情况下引用此类函数。我可以为它发明自己的名字并定义它,但考虑到这些函数的普遍性,我认为已经有一种标准的方式来引用它们。我对么?如果是这样,我该如何引用它们?

【问题讨论】:

Am I correct? 标准术语是“方法”。在 C 中,它们是普通函数。最接近的是FILE* I/O C 标准系列函数,它们被称为functions。 【参考方案1】:

我会同时使用“函数”和“方法”。

“函数”指的是实现,因为它实际上是一个函数,而不是一个方法。

“方法”指的是函数的使用方式,因为您想模拟 OOP,甚至将其称为方法,就好像它是一个方法一样。当然,您将无法使用“方法”的高级 OOP 功能,但是当您决定使用 C 而不是 C++ 时,您接受了这一点。

【讨论】:

【参考方案2】:

我会称它们为方法。

如果 Rust 可以称它为 methods,那么你当然可以。

【讨论】:

以上是关于在 C 中是不是有一个函数可以用作“实例方法”?的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,函数实参与形参之间的数据传递方式是( )传递方式。

怎么将一个函数的返回值用作另外一个函数的参数

c语言中形参和实参的区别?

c语言中形参和实参的区别是啥?

在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是啥