草庐IT

nfs-subdir-external-provisioner

全部标签

c++ - 什么时候用简单的话用extern "C"?

这个问题在这里已经有了答案:Whatistheeffectofextern"C"inC++?(16个答案)关闭8年前.也许我不了解C和C++之间的区别,但我们何时以及为什么需要使用extern"C"{?显然它是一个“链接约定”。我简要地阅读了它,并注意到MSVS中包含的所有.h头文件都用它包围了它们的代码。究竟什么类型的代码是“C代码”而不是“C++代码”?我以为C++包含所有C代码?我猜测情况并非如此,C++是不同的,标准特性/功能存在于其中一个或另一个但不是两者都存在(即:printf是C,cout是C++),但C++是倒退的通过外部“C”声明兼容。这是正确的吗?我的下一个问题取决

css - gulp-ruby-sass : 'bundle' is not recognized as an internal or external command, 可运行程序或批处理文件

我正在尝试在Windows上运行gulp-ruby-sass。我收到以下错误:gulp-ruby-sass:'bundle'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.我已经在我的c:\驱动器(c:\Ruby193)上成功安装了ruby​​我还安装了SaSSgeminstallsass(从这里执行c:\Ruby193)windows我也设置了注册路径c:\ruby193我正在从c:\project\transformer\作为gulp运行我的gulp我仍然收到此错误:gulp-ruby-

c++ - 是否有一个 gcc 选项来假设所有 extern "C"函数不能传播异常?

有什么办法,除了在每个函数原型(prototype)上放置一个属性,让gcc知道C函数永远不会传播异常,即在extern"C"中声明的所有函数都应该是__attribute__((nothrow))?理想的是-f风格的命令行选项。 最佳答案 您始终可以使用-fno-exceptions,这将确保c++编译器不会生成异常传播代码。 关于c++-是否有一个gcc选项来假设所有extern"C"函数不能传播异常?,我们在StackOverflow上找到一个类似的问题:

c++ - 是否有一个 gcc 选项来假设所有 extern "C"函数不能传播异常?

有什么办法,除了在每个函数原型(prototype)上放置一个属性,让gcc知道C函数永远不会传播异常,即在extern"C"中声明的所有函数都应该是__attribute__((nothrow))?理想的是-f风格的命令行选项。 最佳答案 您始终可以使用-fno-exceptions,这将确保c++编译器不会生成异常传播代码。 关于c++-是否有一个gcc选项来假设所有extern"C"函数不能传播异常?,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么这个 "undefined extern variable"不会导致 C++17 中的链接器错误?

我已经在C++17编译器(Coliru)中编译并运行了以下程序。在程序中,我声明了一个extern变量,但没有定义它。但是,编译器不会给出链接器错误。#includeexterninti;//Onlydeclarationintfunc(){ifconstexpr(true)return0;elseif(i)returni;elsereturn-1;}intmain(){intret=func();std::cout为什么编译器不给出链接器错误? 最佳答案 因为变量没有被odr使用。你有一个constexprif总是丢弃可以使用它的

c++ - 为什么这个 "undefined extern variable"不会导致 C++17 中的链接器错误?

我已经在C++17编译器(Coliru)中编译并运行了以下程序。在程序中,我声明了一个extern变量,但没有定义它。但是,编译器不会给出链接器错误。#includeexterninti;//Onlydeclarationintfunc(){ifconstexpr(true)return0;elseif(i)returni;elsereturn-1;}intmain(){intret=func();std::cout为什么编译器不给出链接器错误? 最佳答案 因为变量没有被odr使用。你有一个constexprif总是丢弃可以使用它的

函数上的 C++ extern 关键字。为什么不只包含头文件?

如果我理解正确,这意味着externvoidfoo();函数foo是在另一个翻译单元中声明的。1)为什么不直接#include声明该函数的header?2)链接器如何知道在链接时到哪里寻找函数?编辑:也许我应该澄清一下,上面的声明之后是使用函数foo();在这个翻译单元中从未定义过。 最佳答案 1)它可能没有头文件。但是是的,一般来说,对于大型项目,如果多个翻译单元要使用该功能,您应该有一个头文件(不要重复自己)。2)链接器搜索它被告知要查找函数和其他符号的所有目标文件和库。 关于函数上

函数上的 C++ extern 关键字。为什么不只包含头文件?

如果我理解正确,这意味着externvoidfoo();函数foo是在另一个翻译单元中声明的。1)为什么不直接#include声明该函数的header?2)链接器如何知道在链接时到哪里寻找函数?编辑:也许我应该澄清一下,上面的声明之后是使用函数foo();在这个翻译单元中从未定义过。 最佳答案 1)它可能没有头文件。但是是的,一般来说,对于大型项目,如果多个翻译单元要使用该功能,您应该有一个头文件(不要重复自己)。2)链接器搜索它被告知要查找函数和其他符号的所有目标文件和库。 关于函数上

c++ - 错误 LNK2019 : unresolved external symbol _main referenced in function ___tmainCRTStartup

我不知道它有什么问题。我找不到错误在哪里,注释掉实现也不能解决错误。头文件#ifndefMAIN_SAVITCH_SEQUENCE_H#defineMAIN_SAVITCH_SEQUENCE_H#include//Providessize_tnamespacemain_savitch_3{classsequence{public://TYPEDEFSandMEMBERCONSTANTStypedefdoublevalue_type;typedefstd::size_tsize_type;staticconstsize_typeCAPACITY=30;//CONSTRUCTORseque

c++ - 错误 LNK2019 : unresolved external symbol _main referenced in function ___tmainCRTStartup

我不知道它有什么问题。我找不到错误在哪里,注释掉实现也不能解决错误。头文件#ifndefMAIN_SAVITCH_SEQUENCE_H#defineMAIN_SAVITCH_SEQUENCE_H#include//Providessize_tnamespacemain_savitch_3{classsequence{public://TYPEDEFSandMEMBERCONSTANTStypedefdoublevalue_type;typedefstd::size_tsize_type;staticconstsize_typeCAPACITY=30;//CONSTRUCTORseque