0%

写数据库管理系统时遇到了不少关于C++字符串的问题,要命的是C++的字符串种类实在是太多了,今天试着搜集一些资料总结一下。

char foo[bar] 和 char* foo

char foo[bar]这种形式被称为“C风格字符串”,它是从C语言中流传下来的。它实际上完全就是char型的数组,只是你可以用这样的方式来给它赋值,看上去比较像“字符串”:

1
2
3
//这两行都定义了相同的字符串"Hello"
char foo1[] = "Hello"; //末尾有隐藏的'\0'
char foo2[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

char* foo是声明了一个字符指针,指向单个字符,可以将其当作以'\0'为末尾的字符串的首字符地址。如果要把字符串赋给它,需要先申请内存空间,再使用memcpy()strcpy()。当然,也可以不分配空间,直接用十分危险的指针赋值

1
2
3
4
char* foo1 = (char*)calloc(6, sizeof(char));
strcpy(foo1, "Hello");

char* foo2 = "Hello";
阅读全文 »

冬至已经过了好几天,这次我没能在节气当天写随笔了——也许是一个危险的信号,象征着“持之以恒”依然不存在于我的字典中?

近期在做本科阶段最后的课程设计:综合能力培养。选择的是数据库方向(这算是几个月前“大数据开发”的历史遗留),三人一组用C++编写一个数据库系统。C++对我几乎是“未曾设想的道路”了。

啊,思绪繁杂。不过既然叫随笔,也不该讲求甚么“章法”,就依照“随笔”其名,想一出是一出地写吧。

首先还是在做数据库系统时遇到了海量的问题。这回是不怎么能“倚靠大佬”,相互借鉴交融并包了,所以基本上除了在一筹莫展时从GitHub上稍微看看往届学长的思路之外,都是自己老老实实写出来的东西。这个时候就能体现出“亲力亲为”太少的问题了,功夫是真的不行:一天可能摸不出50行代码,而且逻辑混乱,调试痛苦,维护困难。要说这水平是大二时候的我,倒也勉强可以接受,但是大学四年差不多就剩一个学期了,就连差强人意都算不上。

“我并不想变强,也并不想解决问题,只是想表达自己并非坐以待毙,想表达自己在努力,只是摆出这样一个明显的姿态将自己正当化。我想说自己没办法,我想说自己束手无策,只是为了放弃,我才会做出拼命努力的表象……”
——《Re:从零开始的异世界生活》 第18话

这是我觉得十分危险的一种状态,这段话也时常被我用来反省。实际上这几个月,乃至这几年我还真有点这个意思,表面看起来并不算是“堕落”,却也说不上是在真正“努力”。

努力……难道人必须要努力才能存在吗?显然不是,往往带恶人活得同样滋润。

成年以后,年龄似乎就失去了意义,特别是知识爆炸的这个年代。我们往往把自己与年长自己许多岁的人,或者同龄人中抛头露脸的最顶尖的那一小撮进行比较,然后得出自己一无是处的结论。也许这结论有一半是真,但另一半大抵是十余年“挫折教育”的延续。

内卷,内卷,依然是内卷——东亚几乎要在这梦魇下失去未来。如今不会有人幻想“皇帝的金锄头”,天国和地狱一样空空荡荡,因它们都降临到了地上。成功了的人总是相似,仰视他们的人则各有各的痛处,并且知道自己几乎不可摆脱。些许人已经淡漠,但多数人仍要挣扎,他们的结果并没有太大不同。

我憎恶冬天。冬天总是阴云密布的,却总不下雨——下雨亦是一阵寒过一阵。偶然见了太阳,也是如同吸干了血的尸体,连同被这阳光照射的人物,都成了干尸了。寒冷麻痹思考,逐渐放弃思考。

极简。极简并非以致无欲。与其说是降低饱和度,不如说是增高对比度。

小小寰球。“我们并不孤独。”让我在天文台倒下!

己亥腊月朔日。

在游戏中,场景加载是很常用的功能。如果要在加载的时候让当前的场景还能正常运行,或者加载时能有一个包含进度条之类组件的加载界面,就应该采取异步的场景加载方式。

同步加载

在讲异步加载以前,先说同步加载。

当执行同步加载时,正在运行的场景会被阻塞,产生卡顿,这种方法适合小型的、不怎么需要获取读取进度的场景的加载。如在地牢中切换到另一个房间,读取完成之前当前房间中的一切都静止不动,这种情况应该是用同步加载实现的。

Unity使用SceneManager类的静态方法LoadScene实现同步的场景加载。由于是静态方法,不需要对SceneManager类进行实例化,只要使用命名空间using UnityEngine.SceneManagement;就可直接通过SceneManager.LoadSceneAsync访问。

1
2
3
4
5
//方法原型:

public static void LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);

public static void LoadScene(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
阅读全文 »

12月4日中午,腾讯代理的国行版Nintendo Switch发布,这也是我所一直等待的。

果不其然,锁服不锁区,eshop只能用国服,外区游戏能用实体卡但无法联机,并没能在索尼和微软之上更进一步,和当年的神游相比倒是略有放开。

虽然将来可能会爆出“后门”,但没个一年半载很难说。对我而言,虽然错过了双十一和黑五,但已经没有再等下去的必要了。未来的游戏从业者没有一台本世代的家用机,成何体统?于是当天下午,就以1888+310元的价格入手了日版续航增强Switch以及《宝可梦 剑》。

Switch开箱

其实本来准备遵照传统从荒野之息开始,奈何店主没有,就买了宝可梦。说起来,虽然“神奇宝贝、宠物小精灵、口袋妖怪、精灵宝可梦”地过了这么多年,我却没有完整通关过任何一作,也算是童年一桩憾事。去年买到NDSL之后,也有一小段时间曾试着玩过著名的同人作品《口袋妖怪 漆黑的魅影》,不过也只打过两个道馆,然后就去《大航海时代》里开船了。因此,这次从拿到卡带的第一刻起,我就开始了近乎废寝忘食的攻略。

漆黑的魅影 剑

阅读全文 »