对C中的特定标题使用extern C关键字是否允许从void *转换为char
发布时间:2020-12-16 09:20:53 所属栏目:百科 来源:网络整理
导读:我使用的是用C语言编写的开源流体动力学代码.它们具有许多并行读写输入/输出的功能.我正在编写一个程序来对C中的输出进行后期分析,我希望通过包含它们的头文件在我的代码中使用这些函数.当我在其中包含头文件(a.h)时,会考虑printf等问题 extern "C" {#includ
我使用的是用C语言编写的开源流体动力学代码.它们具有许多并行读写输入/输出的功能.我正在编写一个程序来对C中的输出进行后期分析,我希望通过包含它们的头文件在我的代码中使用这些函数.当我在其中包含头文件(a.h)时,会考虑printf等问题
extern "C" { #include "a.h" }. 但是当我尝试编译它时,错误就出现了 /Src/Parallel/al_io.c:234:5:错误:无效从’void *’转换为’char *'[-fpermissive] 这意味着尽管有extern关键字,它仍然不允许这样做.这是正常的吗?如果是这样,还有另一种方法可以让这些功能起作用.手动编辑它们是不可能的,因为它们中有大约数千个. 解决方法
是. extern“C”改变了联系.该程序仍然编译为C程序. 在extern“C”函数的实现中,您可以访问C的所有功能.另一方面,它的编译就像常规的C函数一样. C程序的所有语法约束都适用于这样的函数.
您可以使用static_cast< char *>(…). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |