gpt4 book ai didi

c - 在 C 中传递控制

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:44 25 4
gpt4 key购买 nike

在面向对象的编程中,我知道您可以在类之间传递控制,这使得事情更有条理。我意识到 C 中没有类,因为它不是一种面向对象的编程语言,但是有没有一种方法可以让我编写一个新文件,我可以将控制权传递给它?只是为了让事情变得更简单?

我真正想问的是:如何将控制传递给程序的外部扩展,我是否需要使用任何特殊类型的程序(.dll 等)

最佳答案

基本上,与 C 相比,C++ 在程序结构组织方面并没有引入太多内容。

在 C++ 中,您并不是真正地在类之间传递控制。您只需调用类的方法。类方法只是具有一些附加功能的函数。因此,您可以在 C 中使用与在 C++ 中相同的传递控制策略。例如:

//C++
class A {
public:
A(int n) { /*...*/ }
int DoSomething() { /*...*/ }
protected:
int m_SomeMember;
double m_AnotherMember;
};

AInst(8);
int x = AInst.DoSomething();

//C
struct A {
int m_SomeMember;
double m_AnotherMember;
};

void InitializeA(struct A* pa, int n)
{
/*...*/
}

int DoSomethingWithA(struct A* pa)
{
/*...*/
}

struct A AStructInst;
InitializeA(&AStructInst, 8);
int y = DoSomethingWithA(&AStructInst);

唯一的问题是,与 C++ 相比,用 C 语言构建程序可能需要付出更多努力。例如,后一种语言将负责对象的正确初始化和销毁​​,而在 C 中,您必须自己处理这些事情。

至于使用静态和/或动态库,这两种语言大部分是相同的。在尝试使 C++ 库可移植到其他编译器和/或平台时,您会遇到更多麻烦,尽管由于许多细微的差异,例如函数名称重整、vtables 和类似的东西。

关于c - 在 C 中传递控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com