强制 void 返回任何内容

时间:2021-08-01 15:19:24

标签: c++ function c++11 lambda anonymous

我和我的朋友打赌,只用一行代码就可以完成一项任务:以特定顺序显示当前时间和一个 5 个字符的文本,每秒只显示一次。 目前我正在努力将 void 强制转换为任何类型。目前我被困在这个:

[c](time_t a)-> char*
    {
        Sleep(strftime(c, 32, "%H:%M:%S ABCDE", localtime(&a)));
    }(a=time(0))

看看我如何通过使用 C++11 的匿名函数将 time() 初始化为本地 a 以通过引用 localtime 来使用它,因为它只获取本地范围的值。但是我主要坚持使用:

void Sleep(DWORD milliseconds);

您不能将 void 转换为任何其他类型或 void*,因为它是非返回类型,但是在汇编程序中,在 void 返回后,EAX/RAX 寄存器中始终存在一些垃圾值 - 即使我可以抓住那个“垃圾” '这将完成我的任务。

我可以使用 Unix sleep() 因为它返回 UINT,但我很好奇是否可能(我虽然关于 __asm 块,但它不能在 lambdas 中使用)

0 个答案:

没有答案