当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《C是否适用于命令行和学习之外的任何项目?》经验,为你挑选了4个好方法。

这并不意味着是煽动性的或类似的东西,但我正在学习C,并且(想)我对大多数基础知识都有很好的处理.我已经完成了所有各种书籍练习:素数生成器,斐波纳契生成器,字符串操作,yadda yadda,但这些都不是很酷.

什么是命令行程序和某些东西之间的"桥梁"-cool-?我听说各种游戏都是用C语写的,但是怎么样?

请原谅我的愤怒,但感觉就像我一直在学习很多,但仍然可以做的相对较少.感谢您对如何处理C的任何见解.

相关信息:OS X leopard,PHP和Web开发经验(这非常棒,因为项目立即处于您认识到它们如何强大的环境中)



1> DigitalRoss..:

C是现代科技的混凝土和钢铁

有一段时间,几乎所有东西都是用C语写的,或者是更糟糕的东西.

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

当然,您不会看到高层建筑中的钢材,您会看到漂亮的室内装饰和时尚的玻璃窗.你不需要钢架或混凝土桌子,如果你这样做,那么为你建造它太昂贵了.

回到GUI问题:你的第一个C图形程序应该直接使用原始的X Window系统.不要在那里花太多时间,而是继续使用更高级的Widget工具包,如GTK +或(C++)Qt.一定要调查你的OS X系统,因为它有一个最先进的系统.

最近尝试用Ruby写东西,但我碰巧知道有超过100,000个 200,000行的C代码实现了那个很酷的Ruby语言系统.:-)


好的建议,除了Qt是C++.
啊,C.你是我喜欢编程的原因.+1对于推荐在GTK +和Qt之前使用X,一旦进入小部件库,就会有很多预设的"魔法".

2> Edan Maor..:

摘要

好的,这篇文章真的很大,所以这里有一个快速的总结,在你阅读它之前:为了编程GUI,有许多好的C/C++库(例如,QT).至少在Windows系统上,大多数人所做的是在需要GUI时使用.NET语言(如C#),在需要更多控制/速度时使用C/C++.将两者组合使用也很常见,即在C#中制作GUI并在C中制作速度关键部分.

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

更长的答案

我将从这个大问题开始,然后回答(尽我所能)关于创建GUI的具体问题.我认为你很容易受到C用于教授编程这一事实的困扰,而且只使用命令行程序这样做更容易(毕竟,编写起来要简单得多).这并不意味着C不能完成你想要的所有东西,比如GUI.确实如此.我不认为有任何类型的软件在C中没有完成,通常在用其他语言完成之前.

好吧,一些答案:

C有用吗?

C及其非常接近的C++,负责世界上很大一部分代码.我不知道用C语言编写的代码是否比其他任何语言都多,但我猜它并不遥远.

您使用的大多数非常重要的程序实际上都是用C/C++编写的.仅举一个例子,Windows.

今天用的C在哪里?

C/C++仍然使用很多.它们对于开发低级别的东西特别有用(比如像操作系统这样的东西,它需要很多速度,很多能够准确控制你的代码所做的事情等等).

但是不要认为这对C程序员来说都是低级别的.即使在今天,随着许多其他语言的出现(可以说它们更好,当然也更容易编程),C仍然被用来创造几乎所有东西.您明确询问的GUI应用程序通常是用C语言编写的,尽管现在很多人都在转换到其他语言.注意我说切换:C曾经是写作的标准语言,好吧,一切,真的.

如何使用C开发GUI

好吧,你特别想知道如何用C创建一个GUI(我希望C++也可以).

首先,它取决于许多因素:

    你在为什么操作系统写作?(Windows,Mac和Linux是最常见的).

    您是否希望GUI也可以在其他系统上运行?

最常见的情况是编写软件以在Windows上工作.在这种情况下,"自然"解决方案是编写与Win32 API一起使用的东西.这基本上就是"来"Windows的库,让你可以做你想做的任何GUI工作.

这个问题的一大问题是,它有点困难.就像在,很难.这就是大多数人不再做那种工作的原因.

那你有什么其他选择呢?

最自然的是使用所谓的.NET语言.这些是Microsoft创建的一堆语言和库.它们可能是在Windows上获取GUI的最简单方法.问题是,你不能真正从C中使用它们(因为它不是.NET语言).

假设您希望留在C/C++中,您可以使用某种类型的库,这样可以更轻松地使用Windows API(因为它隐藏了所有丑陋的细节):

    其中最常见的是所谓的MFC(Microsoft基础类),它是一堆C++类,使得创建Windows内容变得"更容易".不幸的是,这个库很老了,并不是那么容易使用.

    如果你想用C++编程,另一种方法是使用某种第三方库.这是一个Microsoft以外的人创建的库,这使得创建GUI变得更加容易.

    另一个选择是用.NET语言创建软件的GUI部分,并使用C/C++代替其他部分(或者使用.NET语言来做几乎所有事情,只有在真正需要时才使用C/C++) ,例如当你需要快速前进的时候).这是一个非常受欢迎的选择.

第三方库的优点是,如果选择正确的库,您可以使用相同的代码同时为所有操作系统创建GUI.

我认为这些库中最着名的是QT,还有WxWidgets,但还有很多其他库.我个人会选择QT因为它似乎获得了最大的声誉,但我也没有合作过.



3> Daniel Pryde..:

每个主要的操作系统都有用C语言实现的所有低级库.Mac OS X是一个类Unix系统,如果你是一名C程序员,这是一个很棒的世界.

查看Unix编程的艺术,了解一些好主意.

至于GUI的东西,你可能想要使用X11.有很多好的文档 - 大多数Unix编程的东西和大多数深层系统级的东西只是假设你在C中工作,因为这是每个人都使用它.



4> AntonioMO..:

嗯,这取决于.如果要构建桌面应用程序,主要语言为C的多平台GUI库是GTK +:

http://www.gtk.org/

对于游戏,请查看SDL:

http://www.libsdl.org/

这为你提供了从键盘,2D图形,一些音频甚至线程和类似东西的直接输入.如果你想进入3D世界,它也可以打开OpenGL上下文(但是在原始的OpenGl中很难做到).我是否提到SDL是多平台的?

然而,C的真正优势在于系统编程.对于桌面应用程序/游戏,您最适合使用C++.现在您已经掌握了C语言,学习基本的C++应该很容易;).

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有