相关疑难解决方法(0)

C中的函数指针如何工作?

我最近在C中使用了函数指针.

继续回答你自己的问题的传统,我决定对那些需要快速深入研究这个主题的人进行一些基本的总结.

c function-pointers

1170
推荐指数
10
解决办法
77万
查看次数

C中的面向对象

什么是一组漂亮的预处理器黑客(ANSI C89/ISO C90兼容),它在C中实现某种丑陋(但可用)的面向对象?

我熟悉一些不同的面向对象语言,所以请不要回答"学习C++!"这样的答案.我读过" 面向对象的ANSI C编程 "(当心:PDF格式)和其他一些有趣的解决方案,但我最感兴趣的是你:-)!


另请参见您能用C编写面向对象的代码吗?

c oop object

152
推荐指数
9
解决办法
7万
查看次数

你如何在C中实现一个类?

假设我必须使用C(没有C++或面向对象的编译器)并且我没有动态内存分配,我可以使用哪些技术来实现类,或者类的良好近似?将"类"隔离到单独的文件中总是一个好主意吗?假设我们可以通过假定固定数量的实例来预分配内存,或者甚至在编译时将每个对象的引用定义为常量.随意假设我将需要实施哪个OOP概念(它会有所不同)并为每个概念提出最佳方法.

限制:

  • 我必须使用C而不是OOP,因为我正在编写嵌入式系统的代码,编译器和预先存在的代码库位于C语言中.
  • 没有动态内存分配,因为我们没有足够的内存来合理地假设如果我们开始动态分配它就不会用完.
  • 我们使用的编译器没有函数指针的问题

c oop embedded class

131
推荐指数
6
解决办法
14万
查看次数

如何在C中模拟OO风格的多态?

有没有办法在C编程语言中编写类似OO的代码?


也可以看看:

通过搜索"[c] oo"找到.

c oop polymorphism

68
推荐指数
5
解决办法
4万
查看次数

C语言中的面向对象编程

可能重复:
你能用C编写面向对象的代码吗?
C中的面向对象模式?

我记得刚才读到有人(我认为是Linus Torvalds)谈论C++是一种可怕的语言,以及如何用C编写面向对象的程序.在有时间反思的时候,我真的不知道如何所有面向对象的概念都延续到了C.有些事情是相当明显的.例如:

  1. 要模拟成员函数,可以将函数指针放在结构中.
  2. 要模拟多态性,你可以编写一个函数,它接受可变数量的参数并根据sizeof参数(例如参数)执行一些voodoo

你会如何模仿封装和继承?

我想通过使用存储私有成员的嵌套结构可以模拟封装.它可以相当容易地出现,但也许可以被命名PRIVATE或者同样明显的东西,以表明它不应该从结构外部使用.那继承怎么样?

c oop

54
推荐指数
5
解决办法
3万
查看次数

如何使用C建模继承?

是否可以使用C建模继承?怎么样?示例代码将有所帮助.

编辑:我希望继承数据和方法.仅靠集装箱船无济于事.可替代性 - 使用基类对象工作的任何派生类对象 - 是我所需要的.

c oop inheritance

45
推荐指数
4
解决办法
4万
查看次数

C编程语言是面向对象的吗?

我正在与一位同事谈论C和C++,他声称C是面向对象的,但我声称它不是.我知道你可以在C中做类似面向对象的事情,但C++是一种真正的面向对象语言.

你的想法是什么?

此外,它引发了关于谁决定面向对象意味着什么的讨论,并且很难说出面向对象的真正意义.你对此有何看法?

c oop standards

42
推荐指数
5
解决办法
8万
查看次数

MVC在纯C中实现

有没有人知道任何提供在C上下文中尝试模型视图控制器设计模式的直接示例的资源?特别是嵌入式系统?

为了澄清,我对C#,C++,Objective-C,Java,PHP或任何更高级别的语言示例不感兴趣.我想知道人们如何使用纯ansi C99甚至C89来解决这种设计模式的问题.也许这在C中甚至没有意义,因为缺乏正式的OOP语言结构?

一些背景:我的同事和我正在研究由基于Arm的PSoC芯片驱动的嵌入式系统.我们可以控制硬件设计和PCB,并且必须进行软件开发以增强我们产品的功能集.我们的模型通常包括从产品中的模拟到数字转换器的数据采集.视图可以是由嵌入式Web服务器供电的网页,或者是具有电容式触摸控制的LCD屏幕.我们的控制器或多或少是管理这两个代码区域之间关系的胶合逻辑.我们有许多不同的产品和变体来支持,因此需要重用代码.

不寻找高度详细或企业级框架.但是相当简单的例子说明了分离编程问题的好策略,但偏向于在较低级别C中找到的习语,例如结构,函数,事件驱动逻辑和一种在C中有意义的抽象消息传递.

由于硬件的性质,我们需要使用C并且必须自己引导很多东西.在某些情况下,我们可以访问操作系统,在其他情况下,只需直接编译到处理器并从主函数开始.所有非常原始的,但寻找允许代码重用的方法,并希望加快软件工程过程.

c model-view-controller design-patterns

36
推荐指数
3
解决办法
1万
查看次数

C中的OOP和接口

直接蝙蝠我明白ANSI C不是面向对象的编程语言.我想学习如何使用c应用特定的oo技术.

例如,我想创建几个音频效果类,它们都具有相同的功能名称,但这些功能的实现方式不同.

如果我用更高级别的语言制作它,我会首先编写一个接口,然后实现它.

AudioEffectInterface

-(float) processEffect 



DelayClass

-(float) processEffect

{
 // do delay code

  return result

}

FlangerClass

-(float) processEffect

{
 // do flanger code

  return result

}



-(void) main

{
   effect= new DelayEffect()
   effect.process()

   effect = new FlangerEffect()
   effect.process()


}
Run Code Online (Sandbox Code Playgroud)

如何使用C实现这种灵活性?

c oop

31
推荐指数
2
解决办法
3万
查看次数

程序性程序和面向对象程序之间有什么区别?

我对编程很新,但我一直在阅读StackOverflow关于各种编程方法的一些有趣的讨论.我还不是100%清楚程序编程和面向对象编程之间的区别.听起来像面向对象的编程仍然使用过程(方法),但所有内容的组织方式都不同,因为对象是节目的明星.但在我看来,程序仍然允许你做所有相同的事情.与在C中一样,您可以将所有类似的过程放入库中.你真的不能说C中的库类似于C++中的对象吗?

c c++ oop procedural-programming

29
推荐指数
8
解决办法
5万
查看次数