Skip to content

bool 泛左值访问 char 变量是未定义行为 #74

@frederick-vs-ja

Description

@frederick-vs-ja

cppguidebook/docs/undef.md

Lines 256 to 269 in 8119e85

```cpp
char c = 0;
bool b = *(bool *)&c; // 可以,b = false
```
```cpp
char c = 1;
bool b = *(bool *)&c; // 可以,b = true
```
```cpp
char c = 2;
bool b = *(bool *)&c; // 未定义行为
```

这里“可以”的代码实际上也是错误的,应该换别的写法。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions