观心塾

不要成为一个无趣的大人

本周工作

  1. 完成了 Sushi AS 系统测试的 Uplink 部分。

  2. Sushi AS 系统测试的动作式样部分完成 50%。

  3. 通过 微软官方文档 学习了 Blazor、Razor、MVC 后端的差异以及基本的实现方式。

阅读全文 »

近在写代码的测试用例,写的非常痛苦,完全无从下笔,在对整个工程没有全面的认知之前,不清除这个函数究竟从何而起、为何而生、最终又被谁调用、如何调用。

让我想起一句话:“写作时感到的痛苦,是理清思想的痛苦。– David Perell”

阅读全文 »

函数的输入输出设计

输入要保持开放,输出要保持保守。(Be liberal in what you accept, and conservative in what you send.)

-- Jon Postel 谈如何设计接口

阅读全文 »

与运算符和或运算符的语句执行顺序

有一个老生常谈的问题,那就是与运算符和或运算符的语句执行顺序。

1
express1 || express2

先执行表达式express1如果为“真”,express2将不被执行,express2仅在express1为“假”时才被执行。因为第一个表达式为真了,整个表达式都为真,所以没有必要再去执行第二个表达式了。

1
express1 && express2

先执行表达式express1如果为“假”,express2将不被执行,express2仅在express1为“真”时才被执行。因为第一个表达式为假了,整个表达式都为假了,所以没有必要再去执行第二个表达式了。

于是,他并不是你所想像的所有的表达式都会去执行,这点一定要明白,不然你的程序会出现一些莫明的运行时错误。

阅读全文 »

引言

结构体在C语言中虽然经常使用,但是怎么计算一个结构体占用多大的内存,很多C语言的新手都没注意过,其实C语言的语法简单,难就难在它更偏向于与底层,与内存打交道。对于嵌入式方面来说,对C语言的要求更高,因为有些硬件的内存并不像我们使用的电脑的内存那么充裕,所以需要节约内存。

结构体中同样的变量个数,却可能导致占用内存的大小不同。

阅读全文 »

Q: 下面的代码输出是什么,为什么?

1
2
3
4
5
6
7
void test(void)
{
unsigned int a = 6;
int b = -10;
((a + b) > 0) ? printf("a + b > 0\r\n") : printf("a + b < 0\r\n");
printf("a + b = %d\r\n", a + b);
}

A:

废话,输出是:

1
2
a + b < 0
a + b = -4

但是,上机实际跑一跑,真的是这样的吗?

阅读全文 »

上周进行了横河电机的面试,面试总共分两轮,第一轮是部门经理面,第二轮是总监面。总体面试过程很愉快,我在不侵犯隐私的情况下记录一下。

两次面试下来,都可以感觉到管理人员对于公司流程的思考和对于质量管理的严格要求。

尤其是对于公司流程方面的问题,详细到我以为他是对手公司派过来的商业间谍。

下面我对这两个方面进行了一些记录。对于不重要的部分做了部分的删除和更改。

阅读全文 »
0%