首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

学习C语言的烦恼!真心求教各位!

2013-02-02 
学习C语言的苦恼!!真心求教各位!!我学习C语言有十多年了,首先要说明,我不是计算机工作者(我不要求我和各位

学习C语言的苦恼!!真心求教各位!!
我学习C语言有十多年了,首先要说明,我不是计算机工作者(我不要求我和各位看官一样对编程相当熟练)。
我的水平大概是:
C语言入门教程早在N年前已经全部掌握;
数据结构大部分(国内教材)已经差不多掌握(线性表、树、图、查找、排列),而且大部分都实现过;
我以前用TC,帮助老师做过物理模型,自己也做过3D旋转、鼠标中断等等(只是为了说明有一点点点基础);
操作系统原理自学过,计算机原理也自学过,当然不能说怎么学得怎么好,但基本的原理,比如PV原理、内存分配、磁盘查找、总线传输分类等等等等,都是知道的。

去年我在各位的热心帮助下,选择了GCC作为C语言编译工具。

但现在我学习C语言突然有一点点苦恼。。。大家都知道C语言很NB!Linux都是它编写的。可是我却不知道,我学到现在,接下来应该干什么???

C语言现在只是一片黑屏(自从放弃了TC,GCC未找到图形编程),只是进行数学计算……我无法突破了!!我无法做出真正有用的程序!!

我想知道:GCC能不能调用WINAPI而做出实用的小程序??
我想知道:既然C语言玩系统,那么诸如“番茄花园”那个开机自动启动进入菜单的程序是不是用C语言编的??
我想知道:诸如网络管理软件,哪怕抓包工具,用GCC语言怎么实现??难道非要用VC吗??
我想知道:GCC有没有诸如JAVA一样的,满网络满天飞的各种控件函数包??

感谢大家耐心看完此帖~~~请大家指点!!谢谢!!! c gcc winapi
[解决办法]
C语言进一步的话,需要借助丰富的开源库,事实上C语言的开源项目是最多的,JAVA居次席。GUI编程的话,可以借助GTK+库;游戏开发的话,可以借助SDL和OpenGL库;网络方面都是从socket进行延伸的,借助FFmpeg库可以进行多媒体方面的开发;归根结底取决于你自己的研究方向。
[解决办法]
归根到底是你没有具体业务,学啥语言都不知道该干嘛。
[解决办法]
我想知道:GCC能不能调用WINAPI而做出实用的小程序??
我想知道:既然C语言玩系统,那么诸如“番茄花园”那个开机自动启动进入菜单的程序是不是用C语言编的??
我想知道:诸如网络管理软件,哪怕抓包工具,用GCC语言怎么实现??难道非要用VC吗??
我想知道:GCC有没有诸如JAVA一样的,满网络满天飞的各种控件函数包??

====================================================================
GCC是linux下的 WINAPI很多和posix不同的 而且WINAPI做出的那种exe程序GCC不能调用 

GCC可以编出bootargs loader引导程序 但是windows 番茄花园那个是不是C写的真不清楚

可以用GCC写脚本实现 windows下有winshark linux下有tcpdump 运行时可以 ./tcpdump -i eth0 -w test.pcap  tcpdump很强大的

最后一个linux网络那块确实结构体很蛋疼 一个struct ifreq就绕死人 但是控件还真没听说过 linux下多的就是脚本 都在/sbin /bin下面 或者busybox里

学了两年linux C了 有误之处还望海涵。。 
[解决办法]
建议了解一下以下东东:
1. C++
2. Qt
3. Boost
其实楼主不必为不能做出漂亮的界面程序而苦恼,其实程序最有趣的是内部的处理方法而不是华而不实的界面,你看 gcc 这个编译器,编译器可说是最复杂庞大的软件,但 gcc 就是没有界面,是命令行还是界面不过就是一使用方式而已,不必把精力花在制作漂亮的界面上,那是美工的活,不是编程人员的活,如果真要做界面,利用Qt很轻松的就能搞定。
我也曾经有过不能写界面程序的不满,那段时间狂啃了几天MFC,发现很费劲,后来得知有 Qt,制作界面很简单方便快速,果然,但过了一段时间会觉得,界面其实只是表面的,比如你写一个浏览器,你用 Qt,能在一天之内完成个基本样子,但是HTML的解析这样核心的东西你就是直接用的 Qt 的现成接口,好比你制作汽车,是到处找零件来组装而已,至于发动机的原理是怎么样的你根本不知道,这样我很不满意,所以现在比较淡定了,在仔细的学编译原理.....也写出了一个计算器,支持四则混合,支持符号常量和变量,支持数学函数,支持用户自定义函数等,这些东西虽然看起来简单,可核心都是我自己构建的,学到的东西比你做一个浏览器学到的更多。
[解决办法]
我想知道:GCC能不能调用WINAPI而做出实用的小程序??

这个问题有点绕,不过还是能讲清楚的。
简言之,能。
不过过程不是LZ想得那么直白。
首先,gcc是Linux下开始的一个编译器;而Windows API只是一堆函数,只要它符合C的语法,然后写出来,理论上任何一个C编译器都能编译之。
问题在于gcc是Linux下的,不能直接在Windows上跑,怎么办?
聪明的人想出来办法,就是把gcc移植到Windows上。
一个分支就是MinGW,它直接能够编译调用Windows API的代码。
(另一个分支是cygwin,它在Windows上模拟了Linux环境,使得gcc在Windwos上也能运行)
所以这个问题只是工具问题,只要工具支持,就是可以的。
不过既然是调Windows的API写Windows的程序,为何不直接用VC呢?毕竟这是最“直接”的工具。


我想知道:既然C语言玩系统,那么诸如“番茄花园”那个开机自动启动进入菜单的程序是不是用C语言编的??

LZ说的东东没有见过,但是个人知道Linux的bootloader,就是grub,它应该是C写的哦。


我想知道:诸如网络管理软件,哪怕抓包工具,用GCC语言怎么实现??难道非要用VC吗??

诶,似乎LZ没有弄清编译工具和库的关系。
gcc和VC都是编译工具(简单理解),要实现“网络管理软件”,“抓包工具”这样的功能,固然是要编译工具的,但更重要的,是相应的“库”。
比如snmp的库(简单网络管理协议的库),libpcap的库(可以抓包的库)。
想必LZ听过“不要重复造轮子”,这里的库就是比人造好的轮子;你写代码,调用这些库的函数,达到你想要的功能。而编译器,只要支持,就能编译你写的代码。
这就是库和编译器之间的关系。

我想知道:GCC有没有诸如JAVA一样的,满网络满天飞的各种控件函数包??

有,不过很散,得自己通过关键词去搜索。

===================

难得LZ对编程感兴趣还不是干这行的。

其实LZ就是对一些概念掌握的不准确,不系统而已,比如编译器,库之间的关系。

正如LS有人说的,LZ没有业务,其实也就是没有什么方向的意思。



如果确定了方向,上网搜搜,再来问问,就能明确要怎么干。

比如假设LZ想写个有“界面”的程序,那么其实是有很多种选择的。
1、Windows + VC + MFC
2、Windows + VC + Windows API
3、Linux + gcc + Gtk+
4、Linux + gcc + Qt
5、Windows + MinGW + Gtk+
6、Windows + MinGW + wxWidgets
7、Qt(自带一整套完整的开发环境,Windows/Linux下都有)
……
上面列举的,就是平台 + 工具 + 库的一个组合,当然有的组合方便(不需要自己花很多精力搭环境),比如VC或者Qt;也有的比较麻烦,需要自己整一套开发环境出来,如果对编译器的过程没什么理解,也许就相当令人沮丧(比如路径,头文件路径,库文件路径等等)。

[解决办法]
Windows系统:“不要调用我,请先填写好未来收到某个消息时你的处理流程,在那个消息到来时我会调用你!”
《Windows核心编程》
《深入解析Windows操作系统-Windows Internals》

[解决办法]


[解决办法]
楼主是无源之水啊
缺乏实践经验啊
如果自学能力不是很强的话,在没有在软件项目历练的话,真的很难突破啊

[解决办法]
引用:
我学习C语言有十多年了,首先要说明,我不是计算机工作者(我不要求我和各位看官一样对编程相当熟练)。
我的水平大概是:
C语言入门教程早在N年前已经全部掌握;
数据结构大部分(国内教材)已经差不多掌握(线性表、树、图、查找、排列),而且大部分都实现过;
我以前用TC,帮助老师做过物理模型,自己也做过3D旋转、鼠标中断等等(只是为了说明有一点点点基础);
操作系统原……


我也是业余玩玩C/C++ 的,楼主有时间 还是看看 C++ Primer 吧,
GCC 在 windows 的一直 MinGW 支持 winapi 没压力的,可以直接调用 winapi 做窗口界面

热点排行