Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >来自OOP背景,什么是一些C程序/库来帮助我获得"C方式“?

来自OOP背景,什么是一些C程序/库来帮助我获得"C方式“?
EN

Stack Overflow用户
提问于 2011-02-19 08:17:35
回答 4查看 146关注 0票数 2

我做OOP (C++/Java/PHP/Ruby)已经很长时间了,我真的很难想象像Linux或Apache这样的大型程序和库可以完全以命令式的方式编写。小型开源C项目是什么,我可以看看它是如何在C中完成的?

如果项目托管在GitHub上,则奖励积分。

EN

回答 4

Stack Overflow用户

发布于 2011-02-19 08:40:44

在C语言中,做事情的方式完全相同,但语言对它的支持却不那么明显。不是创建一个类来封装某种状态,而是创建一个结构。不使用隐式参数创建类成员,而是创建函数,显式传递一个struct*作为第一个参数,然后对结构进行操作。

为了确保封装不中断,您可以在头中声明结构,但只能在使用它的.c文件中定义它。虚拟函数需要更多的工作--但这只是在结构中放置函数指针的情况。在C中,这实际上比C++更方便,因为在C中,您可以手动填写vtable,对代码的哪一部分实现什么COM接口的部分(当然是C中的COM )有相当好的控制。

票数 5
EN

Stack Overflow用户

发布于 2011-02-19 09:02:12

您可能会发现ccan (模仿Perl的CPAN)的综合C存档网络很有趣。

目前它虽小,但其贡献是高质量的。许多贡献都是由linux内核开发人员做出的。

几乎所有的东西都属于“几千LOC”或更少的类别。

票数 1
EN

Stack Overflow用户

发布于 2011-02-19 09:10:47

如果您想要一个小示例,请尝试查看基本Linux实用程序的源代码。GNU二进制制作或任何其他GNU实用程序都有可用的完整源代码,并且代码基数相对较小(有些代码比其他代码大)。最简单的事情通常是从您以前使用过并且已经熟悉的实用程序开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5051887

复制
相关文章
什么是 C 和 C ++ 标准库?
简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的。
顶级程序员
2018/07/23
2.1K0
C# OOP
(1). 封装:将一些行为以类为单位进行包裹起来,然后通过类进行调用(如People类),可以利用private、public、protected灵活控制属性的可访问性。
明志德道
2023/10/21
1900
C#  OOP
C++ OOP思想
oop思想
lexingsen
2022/02/24
4580
C++ OOP思想
什么是C2C
C2C简单来说就是指个人对个人之间的交易,这也是目前国际上币圈人士炒币的唯一一种交易方式,即:A用户个人拥有USDT,B用户个人需要USDT,那么A用户通过平台进行发布出售USDT信息,B用户在平台提交购买USDT的需求,系统将A用户与B用户进行匹配,此时B用户把人民币转给A用户,A用户把USDT币转给B用户,此笔交易完成,平台方在此承担着监督与担保的作用,以防其中一方违约等事项,但平台方不参与任何一方人民币的经手操作,完全由AB用户双方自行自愿办理转账等操作,平台方唯一能确保的就是假如当B用户违约操作,在收到A用户转账后在规定的时间内不进行确认转币操作,平台方证实无误后可介入强行转币措施,因为当系统自动匹配到AB用户的时候,系统会自动暂时冻结A用户账户此笔交易同价值的USDT数量,如AB双方同意取消此笔交易冻结将取消。同样当B用户某天也想把手上的USDT兑换成人民币的时候也以A用户的方式在C2C平台进行同等操作即可
OKUEX-Yang
2018/07/06
1.1K0
什么是C2C
从本质到实现,谈谈什么是 C 和 C ++ 标准库?
源 / 开源中国 简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的。 我已经接触C++一段时间了,一开始就让我感到疑惑的是其内部结构:我所使用的内核函数和类从何而来? 谁发明了它们? 他们是打包在我系统中的某个地方吗? 是否存在一份官方的C ++手册? 在本文中,我将通过从C和C ++语言的本质到实际实现来尝试回答这些问题。 C和C++是如何制订的 当我们谈论C和C++时,实际上是指一组定义(程序)语言应该做些什么,如何表现,应该提供哪些功能的规则。C/C++的编
顶级程序员
2018/04/26
1.2K0
从本质到实现,谈谈什么是 C 和 C ++ 标准库?
C++ OOP面向对象
抽象类是特殊的类,只是不能被实例化(将定义了纯虚函数的类称为抽象类);除此以外,具有类的其他特性;抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。
编程范 源代码公司
2019/10/23
8920
C++OOP对象和类
本文将从入门的角度介绍C++OOP中的类和对象,事实上C++的类和对象远远不止本文所介绍的内容。
SimpleAstronaut
2022/08/09
4020
C++OOP对象和类
【C语言笔记】什么是ANSI C标准?
我们在很多地方都有看到过K&R C、ANSI C、ISO C、C89、C99、C11等标准,具体有什么不同呢?(文末有个很好的实例)
正念君
2019/06/26
2.9K0
【C语言笔记】什么是ANSI C标准?
C语言到C++的OOP 面向对象编程
1、全面兼容C,C的许多代码不经修改就可以为Cpp所用,用C编写的库函数和实用软件可以用于Cpp。
小林C语言
2020/12/21
3.2K0
C语言到C++的OOP 面向对象编程
C 程序来演示 fork() 和 pipe()
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
鲸落c
2022/12/15
7660
编程思想-什么是面向对象(OOP)
从我们开始接触PHP这门语言后,就有人告诉我们这是一个面向对象的语言。说的最多的是new个对象,其实并不知道什么是对象。以为对象就是一个class(类),并不觉得有什么特殊。直到很久之后,面试官问到什么是OOP,嘴巴都是一个大O,OOP?WTF?那人厌恶的说到就是面向对象编程。我说:Java就是面向对象,就是一切以对象为载体,去编程,去面对。面试官: go out ! now!
李昂君
2021/12/24
6860
编程思想-什么是面向对象(OOP)
【C语言笔记】使用notepad++、MinGW来开发C程序
Visual C++是Microsoft公司推出的用于开发C/C++程序的一款经典的IDE,很多高校都使用其作为教学工具来讲解C和C++。但是,Visual C++ 6.0在win7、win8、win10下总是存在各种兼容性问题,安装麻烦。
正念君
2019/06/26
2.3K0
【C语言笔记】使用notepad++、MinGW来开发C程序
如何用C语言实现OOP
我们知道面向对象的三大特性分别是:封装、继承、多态。很多语言例如:C++ 和 Java 等都是面向对象的编程语言,而我们通常说 C 是面向过程的语言,那么是否可以用 C 实现简单的面向对象呢?答案是肯定的!C 有一种数据结构叫做结构体(struct)和函数指针,使用结构体和函数指针便可实现面向对象的三大特性。
C语言与CPP编程
2021/07/02
1.3K0
如何用C语言实现OOP
C语言 | 什么是静态链接库和动态链接库?
今天分享的是静态链接库和动态链接库的相关知识,并且自己动手写一个简单的静态函数库和动态函数库,来体验这个流程。
飞哥
2020/08/11
4.6K0
C语言 | 什么是静态链接库和动态链接库?
C++_什么是命名空间
命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 如: namespace ns1 //指定命名中间nsl { int a; double b; } namespace 是定义命名空间所必须写的关键字,nsl 是用户自己指定的命名空间的名字(可 以用任意的合法标识符,这里用ns1是因为ns是namespace的缩写,含义请楚),在花括号内是声明块,在其中声明的实体称为命名空间成员(namespace member)。现在命名空间成员包括变量a和b,注意a和b仍然是全局变量,仅仅是把它们隐藏在指定的命名空间中而已。如果在程序中要使用变量a和b,必须加上命名空间名和作用域分辨符“::”,如nsl::a,nsl::b。这种用法称为命名空间限定(qualified),这些名字(如nsl::a)称为被限定名 (qualified name)。C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是人们设立若干子目录,把文件分别放到不同的子目录中,不同子目录中的文件可以同名。调用文件时应指出文件路径。 命名空间的作用:是建立一些互相分隔的作用域,把一些全局实体分隔开来。以免产生老点名叫李相国时,3个人都站起来应答,这就是名字冲突,因为他们无法辨别老师想叫的是哪一个李相国,同名者无法互相区分。为了避免同名混淆,学校把3个同名的学生分在3个班。这样,在小班点名叫李相国时,只会有一个人应答。也就是说,在该班的范围(即班作用域)内名字是惟一的。如果在全校集合时校长点名,需要在全校范围内找这个学生,就需要考虑作用域问题。如果校长叫李相国,全校学生中又会有3人一齐喊“到”,因为在同一作用域中存在3个同名学生。为了在全校范围内区分这3名学生,校长必须在名字前加上班号,如高三甲班的李相国,或高三乙班的李相国,即加上班名限定。这样就不致产生混淆。 可以根据需要设置许多个命名空间,每个命名空间名代表一个不同的命名空间域,不同的命名空间不能同名。这样,可以把不同的库中的实体放到不同的命名空间中,或者说,用不同的命名空间把不同的实体隐蔽起来。过去我们用的全局变量可以理解为全局命名空间,独立于所有有名的命名空间之外,它是不需要用 namespace声明的,实际上是由系统隐式声明的,存在于每个程序之中。 在声明一个命名空间时,花括号内不仅可以包括变量,而且还可以包括以下类型: ·变量(可以带有初始化); ·常量; ·数(可以是定义或声明); ·结构体; ·类; ·模板; ·命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)。 例如
瑞新
2020/07/07
8190
轻松理解什么是 C&C 服务器
大家经常在看恶意软件分析的文章或者关于僵尸网络的报道时经常会看到有关 C&C 服务器的字眼,但是这个 C&C 服务器是什么呢?今天的主题就是带领大家轻松理解什么是 C&C 服务器。
信安之路
2018/08/08
8.9K0
轻松理解什么是 C&C 服务器
【他山之石】来自日本程序员的纯C++深度学习库tiny-dnn
“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
马上科普尚尚
2021/01/13
1.6K0
【他山之石】来自日本程序员的纯C++深度学习库tiny-dnn
JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
从事编程十几年,JAVA、C、C++、Python这四种编程语言都玩过,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现在也有高配版的单片机,本来单片机是不带系统的,非要硬扯到带系统的,从成本上考量就不是那回事了,成本主要包括两个方面有硬件成本,还有研发难度的成本这都是需要考虑的事情。
程序员互动联盟
2019/06/20
1.9K0
JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
什么是面向对象编程?OOP 深入解释
面向对象编程 (OOP) 是一种基本的编程范式,几乎每个开发人员都在其职业生涯的某个阶段使用过。OOP 是用于软件开发的最流行的编程范例,并且在大多数程序员的教育生涯中被作为标准编码方式教授。 另一种流行的编程范式是函数式编程,但我们现在不讨论它。
用户4235284
2023/10/14
1.2K0
什么是面向对象编程?OOP 深入解释
C++ IO库介绍及使用方式
IO 类型之间的关系 设备类型和字符大小都不会影响IO操作,我们可以使用 >> 读取数据,不用关系是从控制台窗口,一个磁盘文件还是一个 string 对象。也不用关心使用char对象去存储还是使用wchar_t对象去存储。 因为有继承机制和模板,我们可以忽略不同流之间的差异。
HeaiKun
2020/07/07
1.9K0

相似问题

C++帮不了忙

25

帮助我编写一些c++代码

32

请帮助我了解如何在OOP C#中使用类

40

为什么认为“T*name”是C方式,而“T*name”是C++方式?

846

除了OOP,为什么C++比C更好?

83
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文