Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions