草庐IT

HK_EXTERN

全部标签

c++ - 是否还需要在源文件中添加 'extern C' ?

我最近发现了一些代码,其中在源文件中添加了extern"C"也用于函数。它们也被添加到声明它们的头文件中。我假设在头文件中添加'extern"C"就足够了。应该在哪里添加外部“C”block?更新:假设我正在使用CPP编译器编译我的C代码,并为头文件中的所有函数添加了extern"C"保护(即我的所有函数在头文件中都有它们的原型(prototype)),但在源文件中我没有添加相同的。这会导致问题吗? 最佳答案 你的意思是extern"C"{...}样式保护,这些声明一些函数是“C”链接,而不是“C++”链接(通常有一堆额外的名称装饰

javascript - 如何在 Closure Compiler 中将 node_modules 定义为 extern?

我有一个想要使用ClosureCompiler编译的Node.js项目。我不希望它在浏览器中运行/使用browserify。我主要想要类型检查的实用程序。我最初使用以下方法使编译器正常工作:java-jarcompiler.jar-WVERBOSE--language_inECMASCRIPT5_STRICT--externsclosure-externs.js--js="lib/**.js"closure-externs.js手动定义了我在Node.js中以相当粗略的方式使用的变量和函数://closure-externs.js/**@constructor*/functionBuf

javascript - 如何在 Closure Compiler 中将 node_modules 定义为 extern?

我有一个想要使用ClosureCompiler编译的Node.js项目。我不希望它在浏览器中运行/使用browserify。我主要想要类型检查的实用程序。我最初使用以下方法使编译器正常工作:java-jarcompiler.jar-WVERBOSE--language_inECMASCRIPT5_STRICT--externsclosure-externs.js--js="lib/**.js"closure-externs.js手动定义了我在Node.js中以相当粗略的方式使用的变量和函数://closure-externs.js/**@constructor*/functionBuf

【开源】使用HK32F030驱动ST7567 LCD

本文使用的LCD是12864液晶屏,驱动IC是ST7567,本文记录如何驱动ST7567,这里要说明一点,LCD里面都有一个驱动器,驱动LCD,其实就是驱动里面的驱动IC。1、关于本文使用的LCD2、引脚说明3、关于ST7567的驱动命令4、驱动时序可以看出:CSB也就是引脚CS,片选引脚,为低电平的时候,才能写入数据或命令;A0也就是引脚RS,数据或命令选择引脚;SCL时钟引脚,为低电平期间,写入数据,SDA数据引脚,数据低位在前,高位在后;5、复位时序RSTB也就是RES,复位引脚,拉低即可复位,但是要注意拉低再拉高后要延时一段时间才能操作LCD。6、原理图7、完整代码#defineLCD

虹科方案 | HK-Edgility:将 SASE 带到边缘

通过上期的文章,我们了解到虹科HK-Edgility软件系统《面向未来的安全SD-WAN》的解决方案。本篇文章,我们将带您了解虹科系统在SASE的方案简介。一、时代背景         向软件即服务(SaaS)和云原生应用程序的过渡,加上越来越多的远程用户生成和访问公司数据,为企业IT团队带来了新的性能和安全挑战。        为满足这些需求,安全访问服务边缘(SASE)是一种网络架构,它将SD-WAN网络功能与云原生安全功能相结合——包括安全Web网关(SWG)、云访问安全代理(CASB)、下一代防火墙(NGFW)和零信任网络访问(ZTNA)——作为一项服务。        SASE支持跨

c# - 对于抽象类中的方法,extern、abstract 和 partial 之间有什么区别?

我写一个抽象类是因为我想提供一些常用的方法,要求一些方法过于具体,并允许一些方法“扩展”。在遇到编译器错误后,我想知道是否有人可以解释extern、abstract和partial关键字之间的区别。它们是什么意思,我应该何时/何地使用它们? 最佳答案 extern不太可能是您想使用的东西。这意味着该方法已实现,但在外部实现-通常用于您定义在外部代码中实现的方法的互操作场景。abstract,另一方面,意味着您正在为该方法定义API,但不提供实现。子类必须为任何标记为abstract的方法或属性提供实现,或者本身就是abstract。

java - Jersey Hk2 注入(inject)@Service注解类

对于我来说,我无法让带有hk2的Jersey自动发现@Service注释类并注入(inject)它们。我已经尝试遵循有关堆栈溢出、Jersey和hk2文档的所有建议,但仍然没有成功。我正在尝试将一个简单的回显服务注入(inject)Jersey资源。骨架是从Jersey的简单webappmaven原型(prototype)生成的,我试图扩展它。这是我目前所拥有的:pom.xmlsandboxorg.glassfish.hk2hk2-inhabitant-generator2.3.0truegenerate-inhabitants...org.glassfish.jerseyjersey

c++ - 与 extern "C"的 C 和 C++ 链接

我在.h文件中定义了一个C++函数,如下所示,并在.cpp文件中实现:extern"C"voidfunc(boolfirst,floatmin,float*state[6],float*err[6][6]){//usesvectorsandclassesandotherC++constructs}如何在C文件中调用func?如何设置我的文件架构/makefile来编译它?谢谢! 最佳答案 您以正常方式从C调用该函数。但是,您需要包装extern"C"在预处理器宏中以防止C编译器看到它:#ifndef__cplusplusextern

c++ - C的 "extern"是怎么工作的?

我有一个C/C++程序,它是Firefox的插件。因为它是一个插件,所以它有非主入口点。这些入口点需要在C中编译,否则它们的名称会被破坏。但是,其他函数会过载,因此它们需要是C++。解决方案是外部“C”。我已经想通了。但是,如果我在.c文件周围使用extern“C”,我会收到链接错误,因为C++文件的名称被破坏了,但.c文件中的调用却没有。至少我认为这就是正在发生的事情。解决方案似乎是将extern"C"放在.h文件周围。这似乎意味着在.h文件中声明的函数的名称没有被破坏,即使它们是在(可能被破坏的).c文件中定义的。但是,我不明白为什么这会起作用。这是拼团吗?我是否为以后很难发现的错

c++ - 我可以制作函数 `extern "c"` 吗?

我有一些cpp文件,我想使用FFI将它们与LuaJit结合。但问题是,我必须为几乎每个函数添加extern"c"符号,以便FFI可以访问它们。是否有更简单的方法来完成此操作? 最佳答案 多个函数可以放在一个extern"C"block中。这允许您为每个头文件只键入一次extern"C"。extern"C"{voidfunction1();voidfunction2();} 关于c++-我可以制作函数`extern"c"`吗?,我们在StackOverflow上找到一个类似的问题: