免费注册 查看新帖 |

Chinaunix

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

关于数组初始化的问题,问题相当有挑战!绝对不忽悠,请进! [复制链接]

论坛徽章:
0
41 [报告]
发表于 2011-08-26 13:32 |只看该作者
就是不能用new,malloc等,只能char str[n]; n是传人参数,然后返回str给调用函数使用;
要求用c++模版实现。

论坛徽章:
0
42 [报告]
发表于 2011-08-26 13:37 |只看该作者
本帖最后由 uusky_cu 于 2011-08-26 13:38 编辑

回复 41# davidfoxhu

不懂C++模板。哈哈……
一般情况下,那样玩会出问题的。
我的理解先从栈里面申请一块大内存块,然后,慢慢分配。哈哈……自己玩内存管理和分配回收。哈哈

论坛徽章:
0
43 [报告]
发表于 2011-08-26 13:43 |只看该作者
可能我的意思表达得不是很清楚哈,引起了误会,我现在详细地解释一下。
用enum的方法,需要定义一大堆变量,代码维护是得不偿失的,更何况是为数组而定义一大堆宏了,更划不来。
用for循环请问加重了什么负担?现在机器的内存这么大,运行频率这么高,能加重多大的负担?况且,就算是作为const数据,直接进入数据段,难道就不用导入内存的吗?
我不是来吵架的,看问题的角度不一样而已,喜欢用const的请继续。

论坛徽章:
0
44 [报告]
发表于 2011-08-26 13:44 |只看该作者
记得好多年前看到的一篇文章,易用为王,做工程的筒子请好好考虑吧!

论坛徽章:
0
45 [报告]
发表于 2011-08-26 13:57 |只看该作者
本帖最后由 uusky_cu 于 2011-08-26 14:00 编辑

回复 43# blackuhlan

兄弟,你考虑更多的是PC应用层面了,没有考虑嵌入式领域的使用情况吧?也没有考虑在OS内部效率和资源的情况。不要老是拿神马软件工程等等的来吓唬偶,偶觉得哪些方面东西考虑大致方向就可以了,太多,太细,太教条就有点过了。。。(本人不懂,非计算机专业毕业,从事的是嵌入式驱动开发,更多的是跟硬件打交道。别喷啊……)如果条条框框太束缚自己的想象力,那就违背了我当初进入软件业的初衷了。做这个开心,就去做,不开心,那就不做这个了。我崇尚自由,所以我“linux程序员”。哈哈……自己冠名的,如果做得不开心,还不如去做一些更有钱途的行业。当然你说的是对的,如果太多复杂的使用,不够简洁,不够优美的用法,我同样也不会使用。

论坛徽章:
0
46 [报告]
发表于 2011-08-26 14:06 |只看该作者
回复  davidfoxhu

不懂C++模板。哈哈……
一般情况下,那样玩会出问题的。
我的理解先从栈里面申请一 ...
uusky_cu 发表于 2011-08-26 13:37



    栈里申请,你自己控制esp(栈寄存器),哈哈,那样估计你们不晕,我估计早都晕死了,每个函数都要去考虑esp平衡!

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
47 [报告]
发表于 2011-08-26 14:10 |只看该作者
本帖最后由 zylthinking 于 2011-08-26 14:16 编辑

我正在琢磨
  2 #include <stdio.h>
  3
  4 #define T(x)    ,x _T(x - 1)
  5 #define _T(x)   ,x T(x - 1)
  6
  7 int main(int n, char** pch){
  8
  9     int m[5] = {
10      5  T(4)
11     };
12
13     printf("%d\n", m[4]);
14
15     return 0;
16 }

但, 1。 无法结束 2。 语法也没通过, 正在琢磨能不能先将 2 搞定呢

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
48 [报告]
发表于 2011-08-26 14:22 |只看该作者
它大爷的, 做不到

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
49 [报告]
发表于 2011-08-26 14:23 |只看该作者
栈里申请,你自己控制esp(栈寄存器),哈哈,那样估计你们不晕,我估计早都晕死了,每个函数都要 ...
davidfoxhu 发表于 2011-08-26 14:06


你做不到

论坛徽章:
0
50 [报告]
发表于 2011-08-26 14:34 |只看该作者
回复 45# uusky_cu


    既然这样,我就多说几句吧。
首先要明确,我们写出来的程序是要给别人用,给别人维护的,这点,大家都承认吧。
在有了这个基础后,我们再看。如果一个程序使用了不太常用的做法,维护的工作量是不是要增加呢?如果很不幸,维护你代码的人刚好半懂不懂(现实中这种情况大量存在),你可以鄙视他水平不够,不能维护你的代码。但是,换个角度考虑问题,你是不是能够将代码写的更加清晰,明了呢?
其次,我知道内核程序是要求效率的,但是效率是来自于算法的,我想应该花更多的时间来考虑算法的优化,而不应该花更多的时间来考虑实现技巧是不是?就比较而言,楼主的这种做法是得不偿失的,不过,也是可以尝试的。我真心希望楼主尝试之后有个清晰的判断(如果你对了,请一定要坚持),毕竟,楼主这样的激情,是程序员的骄傲(引用一句台词:我看好你哦)。
再次,我先前下的断语如果伤害到楼主或和楼主有一样想法的筒子,请允许我道歉。不过,我们写出来的程序,生产的软件,都是要用来解决实际问题的。我在这么多年的项目实践中发现有很多筒子喜欢钻研技术问题,这是好事,但是一味地认为技术就是自己写的程序效率高,那就是走入歧途了,是坏事。简单的例子就是,unix比windows效率高吧,为什么市场反倒更小呢?c语言比java效率高吧,为什么现在java的应用越来越多,c的应用越来越少呢?
最后,软件工程我学的不多,我所说的东西都来自于学习交流和我自己的总结。这么多年,我干过设计、开发、二次开发、运行维护。基本上,软件生命周期中能有的过程我都经历过(说这些只是为了说明我的总结的基础,请不要鄙视我)。这些东西,其实书上也有,别人也经历过,大家都比较认可的东西。
写到这里才发现,有点偏题了,应该是和C/C++版不太兼容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP