搜索
bottom↓
12
返回列表 发新帖
楼主: lazybones

讨论,C语言怎么去写大型程序

  [复制链接]

出0入0汤圆

发表于 2014-4-14 18:41:24 | 显示全部楼层
学习了,谢谢

出0入0汤圆

发表于 2014-4-16 15:27:14 | 显示全部楼层
同样困惑中
觉得需要软件工程(具体规划,分解任务)+C语言,做一个项目,应该就能有些理解了。

出0入0汤圆

发表于 2014-4-16 16:23:03 来自手机 | 显示全部楼层
下班回去慢慢看大家的讨论,我最头痛的是全局变量的管理使用

出0入0汤圆

发表于 2014-4-17 17:00:03 | 显示全部楼层
O(∩_∩)O谢谢咯,linux内核源码,还是挺大的~~

出0入0汤圆

发表于 2014-7-5 22:30:37 | 显示全部楼层
研究LINUX内核是深入学习C的最好方法了。但,会让你黑头发进去,白头发出来。唉,不说那些大话,搞什么大型程序,就叫你不用参考他人代码,自己弄个USB或者FAT,恐怕都难以胜任啊。
其实所谓几万或几十万行程序,我想大多是站在老外的肩膀上加自己平生的小小积累而已。

出0入0汤圆

发表于 2014-7-5 23:48:35 | 显示全部楼层
程序员永恒的命题。。之一,等牛人出现。。
要不楼主你到csdn或chinaunix上问问。。

出0入0汤圆

发表于 2014-7-5 23:56:51 | 显示全部楼层
mark
mark

出0入0汤圆

发表于 2014-7-6 08:13:18 | 显示全部楼层
不明白,多大的程序叫大程序。

出0入0汤圆

发表于 2014-7-6 08:15:12 | 显示全部楼层
像这种大型的项目不是一个人能够完成的吧,大的项目不是有专门的架构师么

出100入8汤圆

发表于 2014-7-9 13:22:37 | 显示全部楼层
本帖最后由 zzsczz 于 2014-7-9 13:29 编辑

方法么:
0 找专业人士
1 用C写个C++编译器,用C++开发
2 用C写个解释器(如lua,   python), 用脚本开发,用C优化 (例如id soft的 雷神之槌 ,就是quake了 )
3 微软有VC,有VB,还有COm(组件对象模型),现在还有.net(就是COm2.0 )  
4 sun 用C写java编译器和虚拟机,用java开发大型系统
5 工控领域, 标准51 rom   2k到8k ,也叫大么?  再大系统的参考西门子的s7 , 用C写个 S7-SCL( IEC 61131-3  Structured Text ) 到IL(汇编 或者 机器码) 的 编译器,再用 SCL 开发系统;
   没积累  写个  IEC 61131-3  Structured Text 到 C 的编译器也可以

出0入0汤圆

发表于 2014-7-9 13:35:37 | 显示全部楼层
你是不是先学C++? ..2011年

出0入0汤圆

发表于 2014-7-9 13:37:15 | 显示全部楼层
要想写大型程序 就别用全局变量, 尽量用结构体.

有N种办法可以不用全局变量.

暂时只想到这么多.

出0入0汤圆

发表于 2014-7-9 13:45:15 | 显示全部楼层
mark..........

出0入0汤圆

发表于 2014-7-9 14:02:11 | 显示全部楼层
loopzhong 发表于 2011-11-20 23:01
回复【7楼】severewinner
这个和语言关系不大,取决你模块化的设计
------------------------------------ ...

请问这个源码在那里有得下载啊?

出0入0汤圆

发表于 2014-7-9 14:58:01 | 显示全部楼层
zzsczz 发表于 2014-7-9 13:22
方法么:
0 找专业人士
1 用C写个C++编译器,用C++开发

土豪,我们做朋友吧!!

出0入0汤圆

发表于 2014-7-9 15:03:36 | 显示全部楼层
慢慢写呗~

出100入8汤圆

发表于 2014-7-9 15:48:05 | 显示全部楼层
stdio 发表于 2014-7-9 14:58
土豪,我们做朋友吧!!

出0入0汤圆

发表于 2014-7-9 16:34:36 | 显示全部楼层
学习学习                                

出0入0汤圆

发表于 2014-7-9 17:10:51 | 显示全部楼层
模块化编程,代码复用,合理运用各类指针操作

出0入0汤圆

发表于 2014-8-27 17:06:11 | 显示全部楼层
看完受益很多~

出0入0汤圆

发表于 2014-9-19 23:21:34 | 显示全部楼层
参照C++思想,只要定义合理,函数合理

出0入0汤圆

发表于 2014-9-20 02:08:30 来自手机 | 显示全部楼层
好可怕,我觉得确实不能以讹传讹,开口闭口linux unix,好高大上阿,呵呵

出0入0汤圆

发表于 2014-9-20 07:41:18 | 显示全部楼层
好多人都提到模块化,个人觉得分层的概念也不容忽视,如驱动层 接口层 应用层等

出0入0汤圆

发表于 2014-9-25 21:05:31 | 显示全部楼层
艰难地看大型项目的C代码中.....

出0入0汤圆

发表于 2014-9-25 21:20:11 | 显示全部楼层
楼主研究下 ucos  rtthread等小系统 试试

出0入0汤圆

发表于 2014-9-25 21:28:35 来自手机 | 显示全部楼层
用过C写过大型程序。来说两句,分模块很重要。大量使用进程通讯,如日志有日志进程负责,其他模块只需要按格式写入共享内存,也不是太难。

出0入0汤圆

发表于 2014-9-28 14:39:35 | 显示全部楼层
围观学习下

出0入0汤圆

发表于 2014-9-28 14:56:12 | 显示全部楼层
看来很有必要学习linux

出15入9汤圆

发表于 2014-9-28 15:03:46 | 显示全部楼层
你需要去了解消息队列而不是用上百个全局变量

出0入0汤圆

发表于 2014-9-30 10:34:10 | 显示全部楼层
多看开源的代码。
有个链接:
aosa book, 顺便就学习了架构。http://aosabook.org/en/index.html
然后就是多写了。
没有捷径。
共勉

出0入0汤圆

发表于 2014-10-15 00:30:52 | 显示全部楼层
其实现在就头大了。。

出0入0汤圆

发表于 2014-12-13 23:10:30 | 显示全部楼层
用C写小一点和程序还好,但程序大了,要管理起来还真不好弄 软件架构,全局变量管理,文件管理等等等,怎么分类,管理会好一点? 分层?核心层,专门写一些算法,函数等,表面层,和操作有关的,如按键操作,接收数据,LCD显示等? 发现真不好弄,一个项目按照当前要求去写,实现了,但如果

出0入0汤圆

发表于 2014-12-20 13:16:16 | 显示全部楼层
好像windows是用C语言写的..............不知道算大不在

出0入0汤圆

发表于 2014-12-23 10:38:21 | 显示全部楼层
好大的话题。慢慢学习下。

出0入0汤圆

发表于 2014-12-23 13:44:00 | 显示全部楼层
楼主应该多i了解下大型软件是怎样分层实现的  比如 蓝牙协议栈

出0入0汤圆

发表于 2014-12-23 14:20:10 | 显示全部楼层
正在往这个方向走

出0入0汤圆

发表于 2014-12-23 20:56:18 | 显示全部楼层
有几个人有机会写大型程序,都是在已经有的程序基础上修修补补,掌握已有的程序架构,可以添加新功能,后期调试维护就可以了。
真正的高手估计是不会参与到这种讨论中的。

出0入0汤圆

发表于 2014-12-23 22:41:48 | 显示全部楼层
学习了。。。

出0入0汤圆

发表于 2015-2-18 10:12:04 | 显示全部楼层
用面向对象的方式去编程,写成类的方式,实现方法调用

出0入0汤圆

发表于 2015-2-18 10:19:26 | 显示全部楼层
只能围观学习了,写过的程序根本不算什么。

出0入0汤圆

发表于 2016-1-25 11:58:53 | 显示全部楼层
这个好像不能一蹴而就吧,阅历,经验到了也就可以写啦

出0入0汤圆

发表于 2016-1-25 13:51:49 | 显示全部楼层
UML                                    

出0入0汤圆

发表于 2016-3-5 22:02:01 | 显示全部楼层
状态机,另外就是发送命令,接收命令触发一个大模块。这样降低耦合度。

出0入0汤圆

发表于 2016-3-5 22:02:20 | 显示全部楼层
觉得Linux内核写的蛮好的 。可以参考。

出0入0汤圆

发表于 2016-6-4 21:00:22 | 显示全部楼层
同赞一个 Linux 内核,这个是最大型最活跃的开源项目。
用 C 写的!Linus 还痛遍过想用 C++ 来写内核和 git 的。

出0入0汤圆

发表于 2016-6-5 16:39:15 | 显示全部楼层
jing43 发表于 2011-10-25 21:15
读一读设计模式吧,还有可以学一下其它的高级语言,仅只会写C的一般写不好C。 ...

这句话有道理!我也去学学其他面向对象语言。C++,C#

出0入0汤圆

发表于 2016-6-5 20:21:57 | 显示全部楼层
本帖最后由 一匹狼 于 2016-6-5 20:44 编辑

关于全局变量管理的问题,通常做法是扔进结构体内,变量按对应模块分类,结构体类型在头文件定义,需要就include!
和楼上各位说的面向对象的思想一个道理!
大型程序,你可能会发现层层嵌套的结构体,注意指针初始化!
比如:
  1. typedef struct var
  2. {
  3.       struct  
  4.       {
  5.           char *sn;
  6.           int len;
  7.           char sn_buf[16];
  8.           ...
  9.       }dev;
  10.      ...
  11.      struct
  12.      {
  13.       ...
  14.       }osd;
  15. }var_t;
复制代码

出0入0汤圆

发表于 2016-6-5 20:35:38 | 显示全部楼层
至于文件管理,通过命名规范可以实现,比如
模块前缀+模块功能_对应平台
mcosd_xx0.c,mcosd_xx0.h
mcosd_yy1.c   mcosd_yy1.h
...

出0入0汤圆

发表于 2016-7-14 16:09:46 | 显示全部楼层
他山之石
大规模C++程序设计
https://book.douban.com/subject/1127940/

出100入8汤圆

发表于 2016-7-26 00:52:12 来自手机 | 显示全部楼层
用c写个支持大规模编程语言的编译器,如python java之类(c++也算),然后再做开发

出0入0汤圆

发表于 2016-7-26 10:07:13 | 显示全部楼层
helislayer 发表于 2016-6-4 21:00
同赞一个 Linux 内核,这个是最大型最活跃的开源项目。
用 C 写的!Linus 还痛遍过想用 C++ 来写内核和 git ...

其实用C++写驱动很爽。Windows 里面目前就是这么做的,开发效率很高。

出0入0汤圆

发表于 2016-7-26 12:52:16 | 显示全部楼层
AIHHLI 发表于 2013-6-26 22:31
个人感觉用Debug敲程序是很神奇的。当年还在Debug下玩过x86汇编,不过连皮毛都没学到。
给我印像最深的是 ...

这个的确见过,佩服不已!

出30入0汤圆

发表于 2017-1-19 22:58:57 | 显示全部楼层
C不太适合写大型程序。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-20 19:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表