Leo 发表于 2014-5-14 09:06:00

代码评析(系列五)

贴个C语言版本的阶乘函数,以响应群众呼声。
/* 阶乘 */
DD1 (fact)        {
        int        i;
        int        from        = (int) N(in_1);

        if(from < 0) {
                ec_ex_syntax ("factorials for negative integers");

                RETURN_FAILURE;
        }

        NW(out)        = 1;

        for(i = 1; i <= from; i ++) {
                NW(out)        *= (ec_value_t) i;
        }
} END_OF (out)

Leo 发表于 2014-5-14 09:08:00

看着很清爽,上来一堆错误条件检查,返回。
缺点是只用了int存储结果,范围肯定不行。

saber000 发表于 2014-5-14 09:25:00

这真的是c语言吗???怎么看不懂了…

Leo 发表于 2014-5-14 09:51:00

这才是C语言的精髓,宏定义满天飞。

changkunpeng 发表于 2014-5-14 21:48:00

回复 4楼Leo的帖子

看了这个才知道自己的C有多么的渣渣。。。

Leo 发表于 2014-5-15 08:38:00

回复 5楼changkunpeng的帖子

双刃剑,宏定义过于随意会导致代码可读性严重降低。

perftcc 发表于 2014-5-15 09:01:00

同是c语音,差距怎么这么大,,,,
页: [1]
查看完整版本: 代码评析(系列五)