免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: whelysee
打印 上一主题 下一主题

[C] 谭浩强的书我就不说什么了,居然教学生include一个.c文件 [复制链接]

论坛徽章:
0
91 [报告]
发表于 2009-10-28 14:29 |只看该作者
村长啊,你太让我失望了。怎么看include .c都是恶习。不否认很多人恶习多多一样活得很好

论坛徽章:
0
92 [报告]
发表于 2009-10-28 14:48 |只看该作者
原帖由 一介村夫 于 2009-10-27 01:40 发表

看来我们说的不是一回事。
考虑这种情形:
一个巨大的程序由几个大模块组成,每个大模块都有几万行代码,模块内部存在复杂的彼此间调用关系,如何使得最后的产品在模块间的相关性最低?
A模块中有一个Open ...



这种思想是错误的,模块内部不该调的连让别人知道的权利都不应该给,你这样别人就随便访问吧,万一那个兄弟在你include的多次的.c里加一个全局变量,你就哭吧。

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
93 [报告]
发表于 2009-10-28 16:28 |只看该作者
所谓的大牛们,你们除了会捧着教科书照本宣科还会什么?
说不出道理了就侮辱谩骂?
要吐我可以,我前面的问题拿得出解决方案吗?


你拿出方案,我服你跟你学!
否则,别跟这儿现眼了!都什么人品啊!

[ 本帖最后由 一介村夫 于 2009-10-28 16:29 编辑 ]

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
94 [报告]
发表于 2009-10-28 16:38 |只看该作者
原帖由 coneagoe 于 2009-10-28 14:48 发表



这种思想是错误的,模块内部不该调的连让别人知道的权利都不应该给,你这样别人就随便访问吧,万一那个兄弟在你include的多次的.c里加一个全局变量,你就哭吧。

你真的看明白我说的是什么了吗?

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
95 [报告]
发表于 2009-10-28 16:40 |只看该作者
原帖由 flyd1005 于 2009-10-28 14:29 发表
村长啊,你太让我失望了。怎么看include .c都是恶习。不否认很多人恶习多多一样活得很好

我不墨守成规,我信奉存在即是合理,我相信创造C语言的人和制定C预言标准的人都比我高。
我用include .c也是迫不得已,你有更好的方法可以解决我的问题可以教给我,我虚心学习。

论坛徽章:
0
96 [报告]
发表于 2009-10-28 20:34 |只看该作者
虽然看不懂讨论但却很欣赏93 楼的话  顶村长

论坛徽章:
0
97 [报告]
发表于 2009-10-28 21:04 |只看该作者
原帖由 albcamus 于 2009-10-27 15:59 发表


请论证一下A20的合理性, 你能论证出来, 我就承认#include c的合理性。


这把我支持一下村长!特殊合理的场合也不排除#include .c 的。

举个实际的例子:

曾经拿到一个古老的图像解码的C代码, 函数接口也算清楚,
但是当我们的程序实际整合这段代码时,遇到了不少的困难,
纠结的地方在于 “全局变量” 很多,
多线程中根本没法用。

解决的办法就是用一个类来#include .c了,
.c文件中除了将头文件移除外,其他代码几乎不需要改动。全局变量的问题很快解决。
丑是丑了点,除了#include .c还真想不到什么更利于维护的办法。

decoder.cpp

struct decoder
{
#include "a.c"
#include "b.c"
#include "c.c"
#include "d.c"
};

论坛徽章:
0
98 [报告]
发表于 2009-10-28 21:14 |只看该作者
原帖由 一介村夫 于 2009-10-28 16:28 发表
所谓的大牛们,你们除了会捧着教科书照本宣科还会什么?
说不出道理了就侮辱谩骂?
要吐我可以,我前面的问题拿得出解决方案吗?


你拿出方案,我服你跟你学!
否则,别跟这 ...


无数人都教过你了!——使用正常的命名方案!——你认为“懒惰”的方法就是最简单、最直接、最精神正常的解决方案

项目开发规范不明确,一帮初级程序员不负责任地胡乱命名造成了名空间污染,不得以使用了龌龊而懒惰的方法把问题凑合解决了。
解决了也就算了,在自己家里用尿盆吃饭,外人也不知道,其实就算知道了也没资格说东道西——家事嘛。

问题是,如果因此而认为这种非主流脑残方案才能体现自己的项目“经验”,而且认为别人用碗筷盘碟吃饭属于“懒惰”,那就是XX了。

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
99 [报告]
发表于 2009-10-28 21:39 |只看该作者
请勿人身攻击,谢谢( edited by converse)

[ 本帖最后由 converse 于 2009-10-28 21:58 编辑 ]

论坛徽章:
0
100 [报告]
发表于 2009-10-28 21:48 |只看该作者

100 楼

等的好辛苦  O(∩_∩)O哈哈~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP