A Month of development in cpp

好久没有写博客了,现在终于有时间来总结一下过去的几个月。

过年前把原来的工作辞掉了,主要还是觉得在那边发展前景不明确,想换个项目组但是没换成,于是就选择了离开。其实离开是必然的。以后还是想着做游戏,目前可以从cpp后端开发和前端u3d中选一个,不过前者相对于后者来说比较熟悉一点。

辞职后在广州本地一家创业公司干了一个月,然后又离开了。可以说现阶段这种创业公司还不适合我。

重新拾起C++對於我來說還是蛮亲切的,其实上学时在C++上还是花了一些功夫的,可惜后来不怎么用就都又返还给了书本。

这次的后台开发框架是基于skynet,可以说是一个非常优秀的框架,基本隔离了那些繁杂的网络细节,可以让你专心与业务逻辑的编写。有时间一定要看看源码学习下。

还有一个经验就是C 和 C++ 混合编程的疑问也给解决了。《A Tour Of CPP》14.3.3.4 上面有写:

To give a C++ function C linkage (so that it can be called from a C program fragment) or to allow a C function to be called from a C++ program fragment, declare it extern “C”. For example:
extern “C” double sqrt(double);
Now sqrt(double) can be called from a C or a C++ code fragment. The definition of sqrt(double) can also be compiled as a C function or as a C++ function.

这句话说的很是不清楚,好像是说要给C++ 代码加 extern “C”, 但是在我们的项目中使用skynet 的时候,是给那些#include “skynet.h” 等外面添加 extern “C” ,这个让我很不解。后面又看了isocpp.org 上面的faq 才清楚了,但是这其中涉及到的编译和链接的知识却没有说的很清楚,但是当我遇到《程序员的自我修养 编译链接和库》这本书后,其中的疑惑就都解决了。简单的说就是因为C++ 和 C 的编译器在编译源文件的时候对源文件中的符号修饰的规则不同。

现在又要找工作了,目前看来比较好的选择还是去做C++ 的后端开发,然后利用业余时间来学习前端开发