gpt4 book ai didi

c++ - 哪个更好 : NULL or false?

转载 作者:行者123 更新时间:2023-11-28 01:07:44 34 4
gpt4 key购买 nike

我使用 SDL 编程已有一段时间了,我决定制作一个头文件来简化我的编码。现在我有一个问题;如果我传递一个我不想要的函数参数,我应该做什么

test(NULL);

来 self 包含的 Windows API 或

test(false);

我使用 C++,而不是 C。

最佳答案

这完全取决于函数参数类型是什么。如果它是一个指针,并且文档说它是有效的,那么您可以传递 C++ NULL(实际上只是 0)。

例子:

// Bad; strlen expects a pointer to a real, existing C-string buffer
std::cout << strlen(NULL);

/**
* Function that does something.
*
* @param ptr Pointer to buffer, or NULL to do nothing
*/
void myFunc(const char* ptr);

// OK; the function is designed to be ok with it
myFunc(NULL);

所以并不是所有的函数都会接受这个对指针有效。

它肯定不会对任何其他类型有效(尽管您可以将它传递给 int,但这并不是您期望的那样)。 NULL 不是包罗万象的“我想退出此函数参数”。在一般情况下,您根本无法这样做。

结论:这取决于test是什么。

而且我不知道 null 应该是什么。

关于c++ - 哪个更好 : NULL or false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5254184/

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