相关疑难解决方法(0)

通过将函数指针转换为 void 函数然后调用它来“丢弃”返回值是否是未定义的行为?

说,像这样:

int SayHelloThenReturnTen(void) {
    puts("Hello world");
    return 10;
}
Run Code Online (Sandbox Code Playgroud)

后来:

((void(*)(void))SayHelloThenReturnTen)();
Run Code Online (Sandbox Code Playgroud)

那安全吗?通过强制转换为空指针来“丢弃”返回值是否安全?这是安全的跨平台,还是未定义的行为?

c casting function-pointers function undefined-behavior

1
推荐指数
1
解决办法
92
查看次数