使用条件语句激活函数的目的是什么
What is the purpose of using conditional statements to activate a function?
激活这样的函数的目的是什么
if(!FUNCTION()){
return(1);
}
为什么不调用类似的函数
FUNCTION();
尽管我在初始化应用程序时使用了条件语句,并且确实不会导致系统混乱,但只调用FUNCTION()
不是更快吗?
我知道条件也有返回值1,但返回值不是也没有必要吗?
我在这个片段中这样使用:
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCMDline, int nCmdShow){
//HWND initialization
if(!InitMainWindow(hInstance, nCmdShow)){
return 0;
}
目的是检查FUNCTION
的返回值。据推测,FUNCTION
是这样声明的:
bool FUNCTION();
其中,返回值(bool
)表示成功或失败。假设您有一个连接到数据库的函数:
bool ConnectToDatabase();
ConnectToDatabase
将尝试连接到数据库,但在实际代码中会发生不好的事情,并且函数并不总是成功。如果我们把这个代码放在一个更大的上下文中:
ConnectToDatabase();
databasePointer->GetTheTable();
您可以看到,如果我们无法连接到数据库,尝试附加到其中的表将永远不会成功,事实上,数据库指针databasePointer
甚至可能无效。试图附加到未连接数据库中的表肯定只会以眼泪告终。
因此,我们进行检查,以确保我们调用的函数达到了我们的预期,然后再继续使用假设它们达到了预期的代码:
if (!ConnectToDatabase())
return false
databasePointer->GetTheTable();
你发布的示例代码基本相同,但有一些曲折:
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCMDline, int nCmdShow){
//HWND initialization
if(!InitMainWindow(hInstance, nCmdShow)){
return 0;
}
在这种情况下,InitMainWindow
可能是一个做不止一件事的函数:
- 它创建了主窗口
- 它一直等待,直到用户使用完主窗口
- 主窗口关闭后,
InitMainWindow
返回
因此,在这里,您可以看到对InitMainWindow
的调用可能需要几分钟或几个小时才能返回,当它返回时,是程序退出的时候了。
另一方面,InitMainWindow
可能就这么简单——它只是启动主窗口并立即返回。在这种情况下,如果InitMainWindow
由于某种原因失败,我们不想开始使用该窗口。
以这种方式调用函数可以将结果馈送到类似但更复杂的构造中。
例如,假设您有一个函数:
int somefunc(){
if (!otherfunc())
return 1;
}
然后可以将结果输入到另一个if语句中。
if (somefunc())
// Do Something meaningful
从技术上讲,此代码有一个错误,因为如果InitMainWindow返回非零,WinMain将不会有返回值,尽管主函数通常会忽略该值。
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCMDline, int nCmdShow){
//HWND initialization
if(!InitMainWindow(hInstance, nCmdShow)){
return 0;
}
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 是什么让放置新调用对象的构造函数?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 在函数中拥有函数原型的目的是什么?
- 使用基类指针调用基类的值构造函数的语法是什么?
- C++:使用方法调用析构函数的顺序是什么?
- 将此布尔值传递给此函数的最有效方法是什么?
- * 和 ** 在 C++ 函数声明中是什么意思?
- C++:Lambda 函数指针转换的用例是什么?
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- 在将函数声明为友元时,尖括号的含义是什么?
- 在模板类之外定义友元函数的正确方法是什么?
- 在使用包含冒号的类似函数的宏时,是什么导致了这种编译器差异?
- 单冒号是什么意思 c++ 函数接口
- 对于tanh激活函数神经网络,对负/非数值数据进行归一化的最佳方法是什么
- 使用条件语句激活函数的目的是什么
- 有没有办法知道是什么激活了QAction