我正在使用一个 3rd 方开源应用程序,它做了一些我认为很奇怪的事情。我想听听您对您是否认为这是错误的/邪恶的/可憎的/等等,或者是否有正当理由这样做的意见。
简单地说,他们使用#include pre-proc 指令来包含包含代码片段的“头文件”。不是函数的原型。不是内联函数。只是部分代码。
这是一个简单的例子。首先是 main.cpp 文件:
#include <iostream>
//Other "normal" includes here...
int main(int argc, char *argv[]) {
cout << "Initializing program..." << endl;
#include "parseArgs.h"
// ... remainder of the program
cout << "Exiting." << endl;
return 0;
}
在 parseArgs.h 头文件中,有一个小代码片段。请注意,这正是 parseArgs.h 文件中的内容。这不是函数的一部分。没有包含守卫,只有以下 4 行:
argList args(argc, argv);
if(!args.valid()) {
cout << "Invalid arguments.";
exit(1);
}
在实际程序中,有几个这样的#include 指令,每个指令都执行另一个小任务。
这似乎是危险和疯狂的。我不知道他们为什么不把这些写成函数。
你的想法和意见?