Skip to content

Commit 69eec01

Browse files
committed
Add paragraph about x & 0xFF
1 parent 870d538 commit 69eec01

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

tutorial04_answer/tutorial04_answer.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ static void lept_encode_utf8(lept_context* c, unsigned u) {
6464
}
6565
~~~
6666
67+
有同学可能觉得奇怪,最终也是写进一个 `char`,为什么要做 `x & 0xFF` 这种操作呢?这是因为 `u` 是 `unsigned` 类型,一些编译器可能会警告这个转型可能会截断数据。但实际上,配合了范围的检测然后右移之后,可以保证写入的是 0~255 内的值。为了避免一些编译器的警告误判,我们加上 `x & 0xFF`。一般来说,编译器在优化之后,这与操作是会被消去的,不会影响性能。
68+
6769
其实超过 1 个字符输出时,可以只调用 1 次 `lept_context_push()`。这里全用 `PUTC()` 只是为了代码看上去简单一点。
6870
6971
## 3. 代理对的处理

0 commit comments

Comments
 (0)