我以前使用python,现在我转向c ++以提高效率。我曾经习惯用main函数测试库文件,只是为了确保所有函数和类都正常工作。和
if __name__ == "__main__":
main()
即使我需要导入其他代码的文件,工作也很好。
但是,我不知道如何才能为c ++做同样的事情。我知道在我想要包含该文件之前,我可以在库文件中注释掉main函数。但我真的想知道C ++中是否存在任何等效方法。
首先,您不应该以python方式执行此操作,而是编写一个小测试程序来测试您的库。为了设计它,python方式在C ++中并不常见,你不会让许多新朋友这样做。
但是如果你真的想这样做,你可以将main定义为弱符号。
int __attribute__((weak)) main() {
[your code]
}
如果找到非弱符号,链接器将覆盖任何弱符号。例如,如果你不编写自己的技巧,lex / flex会使用这个技巧来为你提供一个通用的主要技巧。
正如StoryTeller所说,它不符合标准,并不适用于所有平台。尤其不适用于Windows。