C是否适用于命令行和学习之外的任何项目?

C是否适用于命令行和学习之外的任何项目?,c,C,这并不意味着有煽动性或诸如此类的东西,但我正在学习C,并且(认为)我对大多数基础知识都有很好的掌握。我做过各种各样的书籍练习:素数生成器,斐波那契生成器,字符串操作,雅达雅达,但这些都不酷 命令行程序和一些很酷的东西之间的“桥梁”是什么?我听说各种各样的游戏都是用C写的,但是怎么写呢 请原谅我的愤怒,但我感觉我学到了很多,但仍然只能做相对较少的事情。感谢您对如何使用C的任何见解 相关信息:OS X leopard、PHP和web开发经验(这非常棒,因为项目马上就进入了一个你能意识到它们是多么强大

这并不意味着有煽动性或诸如此类的东西,但我正在学习C,并且(认为)我对大多数基础知识都有很好的掌握。我做过各种各样的书籍练习:素数生成器,斐波那契生成器,字符串操作,雅达雅达,但这些都不酷

命令行程序和一些很酷的东西之间的“桥梁”是什么?我听说各种各样的游戏都是用C写的,但是怎么写呢

请原谅我的愤怒,但我感觉我学到了很多,但仍然只能做相对较少的事情。感谢您对如何使用C的任何见解

相关信息:OS X leopard、PHP和web开发经验(这非常棒,因为项目马上就进入了一个你能意识到它们是多么强大的环境)

很酷的东西与C有什么关系?
操作系统、设备驱动程序和python模块


游戏通常会使用C++,如果是C语言,根据我的经验/我所看到的。

< P>在UNIX下有很多C库,比如X LIB,它访问X11,

如果你想进入机器人学,你可能会发现C++非常有用,因为你必须用很小的内存足迹来写低级代码,所以即使C++也不是最好的选择。

C和C++非常擅长编写小的、快速的代码,但是OOP并不总是最好的选择,所以有时你会发现C是一个更好的选择,例如如果你正在编写编译器或OS。

< P>每个主要的操作系统都有它在C Mac OS X中实现的所有低级库,是一个Unix类的系统,如果你是一个C程序员,这是一个奇妙的世界

查看一些伟大的想法


至于GUI方面的东西,您可能需要使用X11。有很多很好的文档--大多数Unix编程的东西和最深层的系统级的东西都假设您使用的是C语言,因为每个人都使用C语言。如果您想要构建桌面应用程序,那么以C为主要语言的多平台GUI库是GTK+:

有关游戏,请查看SDL:

它为您提供了类似键盘直接输入、2D图形、一些音频甚至线程之类的功能。如果您想进入3D世界,它还可以打开OpenGL上下文(但是在原始OpenGL中很难做到)。我说过SDL是多平台的吗

然而,C语言的真正优势在于系统编程。对于桌面应用程序或游戏,也许你最适合C++。既然你有C的命令,学习基本的C++应该是容易的;p> 是一个很好的图形和声音库,我见过一些很酷的东西。如果用C语言制作,制作时间会更长,但从性能的角度来看,效果会更好。

C是现代技术中的混凝土和钢材 曾经有一段时间,几乎所有的东西都是用C语言编写的,或者用更糟糕的语言编写的

现在,许多高级语言和系统实际上是用C或C++实现的,然后这些东西实现了更多的系统。这是站在巨人的肩膀上,正如这句话所说。几乎每个操作系统内核、浏览器和重型web服务器都是用C/C++编写的

当然,你看不到高楼里的钢铁,你看到的是漂亮的室内陈设和光滑的玻璃窗。你不想要一张钢制或水泥制的办公桌,如果你想要的话,为你建造办公桌就太贵了

回到您的GUI问题:您的第一个C图形程序可能应该直接使用原始的。不要在那里花费太多的时间,然后继续使用更高级的小部件工具包或工具。一定要调查一下你的OSX系统,因为它是所有系统中最先进的


最近我很喜欢用Ruby写东西,但我碰巧知道有超过100000行的C代码实现了这个很酷的Ruby语言系统。:-)

当然有一些令人印象深刻的C语言程序

以GNOME为例,可以说现代unix系统中使用最多的桌面环境是用C编写的(至少是主要部分),并且主要基于gui工具包,而gui工具包本身是用C编写的


对于游戏来说,OpenGL是一个C api,是多平台开发(不是唯一的microsoft平台)中3D图形编程的标准,Quake 3的引擎Id Tech 3在GPL中可用,也是用C编写的。也有很多2D游戏是用library编写的。

如果你认为很酷的是GUI应用程序,而你想在Mac上编写本机GUI应用程序,你会想看看 . 这是MacGUI和操作系统的官方C API。他们一直威胁要杀死它,但它活了下来


我个人认为GUI应用程序是对酷的狭义定义。我认为最酷的是使用实现并行数学算法。

摘要

好的,这篇文章非常重要,所以在阅读之前,这里有一个简短的总结:要编写GUI,有许多好的C/C++库(例如QT)。大多数人所做的,至少在Windows系统上,是在需要GUI时使用.NET语言(如C#),在需要更多控制/速度时使用C/C++。将两者结合使用也很常见,即在C#中创建GUI,在C#中创建速度关键部件

我仍然鼓励你阅读更长的答案,它包含了更多关于你选择的信息

更长的答案

我将从一个大问题开始,然后(尽我所能)回答关于创建GUI的具体问题。我认为你正在遭受这样一个事实的折磨,即C是用来教编程的,而且只使用命令行程序要容易得多(毕竟,它们编写起来要简单得多)。这并不意味着C不能做你想要的所有事情,比如GUI。是的。我不认为有任何类型的软件不是用C语言编写的,通常是在其他语言编写之前