原始森林历险记 - 从C++到C99 (1)

一直以来主要的开发语言都是C++, 从来没有想到过会使用C语言开发,直到我决定开始启动一个基于C的API的开源项目. 这才发现需要面临很多在使用C++时候重来不会去考虑的问题. 没有析构,没有继承不说,还没有基本的容器,所有这些都要从头开始,我一下子从舒适安然的城市回到了寂静清醒的原始森林...

... 夏风轻轻吹过,在瞬间消失无终,记住的,遗忘了,只留下一地微微晃动的迷离树影...

至少我还有standard I/O library, 还有POD, 和善变的POSIX...

森林里住着稀奇古怪的物种,并不constant的const, 幽灵般游离在C99外的的inline, 像风像雾又象雨的函数指针...

冒险从此开始...

无论是C++还是C99,每次开始一个项目,都是一个冒险,只是context不同而已...

说到context,就想起UML,想到曾经参加过的一个UML培训,老师出了以下题目:

#include <iostream>

#include <string>

string * s = new s;

if (s)

  cout<<s<<endl;

问 if(s) 这样的判断是否正确?

char * s = malloc(sizeof(char)*1000);

if (s)

  free(s);

只有使用malloc,calloc这些C99的内存分配方法,才需要通过s是否等于0来判断内存是否已经分配好了,而c++则采用抛出异常的方式

当我们的程序的文件名从.c变成.cpp的时候,我们还保留着森林的气息..

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭