gpt4 book ai didi

c++ - #include 是不好的做法吗?

转载 作者:行者123 更新时间:2023-12-01 14:03:55 25 4
gpt4 key购买 nike

我认为这是普遍接受的 #include <bits/stdc++.h> is bad practice ,部分原因是它解析并包含每个标准头,这几乎总是不必要的(它也是不可移植的,但这超出了我的意思)。与 using namespace std; 结合使用时更糟因为现在您的命名空间中有大量常用名称,例如 next .

然而,似乎#include <Windows.h>大多数情况下被认为是可以的(我见过的大多数 Win32 程序都使用它),即使它在概念上与 #include <bits/stdc++.h> 的组合做同样的事情。 + using namespace std; .

根据 Wikipedia :

windows.h is a Windows-specific header file for the C and C++ programming languages which contains declarations for all of the functions in the Windows API, all the common macros used by Windows programmers, and all the data types used by the various functions and subsystems. It defines a very large number of Windows specific functions that can be used in C.



为什么会这样?是否不可能包含我们使用的特定标题而不包含 <Windows.h> ?

最佳答案

Msdn 文档明确地告诉您 (a) 函数在哪个头文件中声明,以及 (b) 您应该包含哪个头文件。

大多数函数都会告诉您包含 windows.h ,例如 SendMessage

某些后来添加或具有非常特定用例的函数只能通过其他头文件使用,例如 SetupDiEnumDeviceInfo .

所以不,听从他们的建议是不错的做法。但是,我强烈建议在通过宏包含之前禁用它的某些部分,例如

#define NOMINMAX
#include <Windows.h>

因为否则你会得到一个 min和一个 max会干扰的宏 std::minstd::max .

关于c++ - #include <Windows.h> 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61921246/

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