gpt4 book ai didi

c - 在 Windows 上一个函数返回 int 到一个返回 BOOL 的函数是否重要?

转载 作者:行者123 更新时间:2023-12-02 08:31:59 24 4
gpt4 key购买 nike

在下面的半伪代码中,我从文件中获取输入并写入标准控制台输出。然后控制台等待键盘输入。只有 Enterq 键被激活。

如果按下 Enter 键,更多输出将打印到控制台(假设我们没有读取 EOF)。如果按下 q 键,该函数将返回 1。如果我们读取 EOF,该函数将返回 0

int exit_early(const WCHAR *message)
{
WCHAR ch[4];
DWORD nChars;

/* Read from file and print to standard output. Wait for keyboard input */
do {
while (ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), ch, 1, &nChars, NULL))
{
if (ch[0] == VK_RETURN)
break;
else if (ch[0] == 'q') /* Exit on 'q' key */
return 1;
}
} while (condition);
/* other code */
return 0;
}

BOOL wrapper(const WCHAR *message)
{
BOOl ret;
/* Get and set console mode */
ret = exit_early(message);
/* Restore console mode */
return ret;
}

int wmain(int argc, WCHAR *argv[])
{
/* Load file. Send to wrapper().
Keep going until EOF or early exit returned. */
while (condition)
{
if (wrapper(str)) /* Breaks if TRUE. */
break;
}
/* more code */
return 0;
}

我无法理解 return 类型是否兼容。 BOOL ret 收到 01 是否重要?或者这应该是 TRUE 还是 FALSE,因为 wrapper() 返回 BOOL?我注意到 windef.hTRUE 定义为 1 并将 FALSE 定义为 0

我想我想问的是 exit_early()wrapper() 是否应该都 return int 或者都应该 返回 BOOL

最佳答案

这无关紧要,因为从技术上讲,BOOL 只是“int”的类型定义。这是它在 WinDef.h 中的定义:

typedef int BOOL;

here是有关 Windows API 定义类型的更多信息。

关于c - 在 Windows 上一个函数返回 int 到一个返回 BOOL 的函数是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25786980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com