美文网首页我的编程之路
再见,我曾经喜欢的C语言

再见,我曾经喜欢的C语言

作者: ltoddy | 来源:发表于2017-05-25 07:16 被阅读0次

我发现我根本不会C语言

其实本来半年前就应该跟C语言说再见的,但是因为今年上半年还需要参加比赛,需要用C/C++来搞算法,以及为自己编写一个操作系统。

虽然C语言不是我接触第一个编程语言,却是我使用最久的语言。曾经以为,自己理解了C语言的指针,能拿C语言轻松的搞搞算法,自己就算是会C语言了,其实我错了。

对于C语言,我可以这样秀:比如当创建一个数组arr[n]之后,一般我们去遍历数组的时候是for (int i = 0; i < n; i++) { a[i]; }但是我知道下表访问符[]是个语法糖,也就是说a[i]在编译器看来是*(a+ i)所以,遍历数组的时候可以这么写:for (int i = 0; i < n; i++) { i[a]; }我相信一般人没这么试过。

另一个,比如入门语言的第一个程序,打印hello world程序,在发明C语言的那个时代,没有异常处理(try-catch),所以只能通过函数的返回值来判断函数执行的结果。所以我可以这么秀:

#include <stdio.h>

int main() {
    return 0 * printf("hello world\n");
}

但是,当我在读 Joe Armstrong先生的著作是,我看到了如下的代码。

%% API
-export([area/1]).

area({rectangle, Width, Ht}) -> Width * Ht;
area({square, X}) -> X * X;
area({circle, R}) -> math:pi() * R * R.
enum ShapeType { Rectangle, Circle, Square };

struct Shape {
    enum ShapeType kind;
    union {
        struct { int width, height; } rectangleData;
        struct { int radius; } circleData;
        struct { int side } squareData
    } shapeDate;
};

double area(struct Shape* s) {
    if (s->kind == Rectangle) {
        int width, height;
        width = s->shapeDate.rectangleData.width;
        height = s->shapeDate.rectangleData.height;
        return width * height;
    } else if (s->kind == Circle)
        ...

当时我看完之后,感触挺大的——握槽,代码可以写的这么优雅,自己C语言白写了。

我自己是看过一些C语言的API的,其中的代码对于基础类型的使用还是非常好的,比如有时候会使用上大家不常用的short。可以节省内存,也能满足需求。

对于C语言,我写的都是toy code,基本没写出什么有用的代码。

确实该跟C语言所再见了,等我未来两三个月解决完我编写操作系统的内核,就彻底的不再碰C语言了。或许像Java这样避免程序员犯错误的语言才更适合我。

相关文章

  • 再见,我曾经喜欢的C语言

    我发现我根本不会C语言 其实本来半年前就应该跟C语言说再见的,但是因为今年上半年还需要参加比赛,需要用C/C++来...

  • 再见了,那些无病呻吟的曾经

    再见了,那些曾经我喜欢过的女孩,也许被我喜欢,是一种辛苦,一种煎熬吧! 再见了,那些曾经喜欢过我的女孩,原谅我,原...

  • 再见,我曾经最喜欢的‘你’

    今天是他的生日,那个我喜欢了很久很久的‘你’。我以前喜欢叫他‘你’,因为我不敢直呼其名,也不想想太过于复杂的昵称...

  • 再见了,我曾经喜欢的女孩

    再见了,我曾经喜欢的女孩子。要是有所谓的前世今生,我们下辈子再续前缘吧!———谨以此文怀念我们共同走过的那段美好岁...

  • 再见,我曾经喜欢的那个男孩

    曾经傻傻的以为喜欢一个人的外在美就要将自己的所以都给他…… 后来我发现我错了 如今早以物是人非,而我只...

  • 浅谈C语言数组与指针的关系

    浅谈指针定义细节及其与数组的关系 前言 翁恺老师曾经说过,指针是 C 语言的灵魂,是使 C 语言成为 “C语言” ...

  • 我曾经喜欢过你,c

    “你曾经喜欢过我吗?” 我一直都想问问你。 时光如白驹过隙,倏然而逝。我们也有好多年没见面了。我不想知道你...

  • 再见,曾经喜欢的人

    不知道从什么时候开始,我发觉我喜欢上了一个男生,大概每个姑娘的初中或者什么时候都会有暗恋的人吧! 那时的他,是我原...

  • 再见

    再见,我那个曾经的他。 再见,我那个曾经的心动。 再见,我那个曾经的好感。 再见,我那个曾经还没有开始,便已经结束...

  • C语言之后(歪谈语言史)

    众所周知,C语言是在B语言的基础上发展起来的,而B语言又是从A语言的基础上发展起来的。在学C的时候,我就曾经突...

网友评论

    本文标题:再见,我曾经喜欢的C语言

    本文链接:https://www.haomeiwen.com/subject/vasaxxtx.html