首页 / 知识
与stdbool.h C接口
2023-04-13 01:59:00

interfacing with stdbool.h C++在一个项目中,我正在C ++和使用这样定义的stdbool.h的C库进行接口连接。
某些结构具有 有没有人对如何克服这个问题有任何建议,而不必依靠我目前的解决方案?
这违反了stbool.h的C99标准
通过找到与C99标准兼容的
这取自Ada类库项目。 大小不是唯一在这里会不一致的东西。在C ++中,bool是关键字,C ++保证bool可以保留1或0的值,而不能保留其他任何值。 C没有给您这种保证。 就是说,如果C和C ++之间的互操作性很重要,则可以通过为C ++定义一个相同的布尔值并使用它代替内置的布尔值来模拟C的自定义布尔值。这将是错误的布尔值与C布尔值与C ++布尔值之间相同行为之间的折衷。 从逻辑上讲,您无法在C和C ++之间共享带有冲突的bool声明的源代码,并使它们彼此链接。 共享代码和链接的唯一方法是通过中间数据结构。不幸的是,据我了解,您无法修改定义C ++程序和C库之间接口的代码。如果可以的话,我建议使用类似的方法:
//根据字节顺序,可能需要填充 这样做的结果是使两种语言的数据类型具有相同的宽度;转换为本地数据类型将需要在两端进行。在库函数定义中将布尔值的布尔值替换为布尔值,在库中转换代码以进行转换,就可以了。 因此,您要做的是在C ++程序和C库之间创建垫片。 你有:
您需要创建:
现在改为调用library_func_1_cpp。 |
最新内容
相关内容
用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最怎么在Python装饰器中自定义功能呢
怎么在Python装饰器中自定义功能呢?,代码,包装,环境,名称,工具,名字,变动,业务,主体,面临,setattr和getattr操作首先我们来看下setattr和getapython操作系统接口模块:OS
python操作系统接口模块:OS,管理,工作,工具,系统,服务,培训,模块,文件,目录,函数,OS模块提供了很多与操作系统进行交互的函数,比如常见的使用函Python算法定义
Python算法定义,有限,时间,数据,算法,情况,培训,系统,策略,复杂度,步骤,算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的python怎么定义用户输入
python怎么定义用户输入,培训,字符串,整数,类型,用户,文本,定义,文档,小数点,位数,python中获取用户输入的方法如下:整数输入#!/usr/bin/pythopython怎么创建mysql数据库连接
python怎么创建mysql数据库连接,项目,数据,培训,参数,结果,数据库,方法,语句,数据库连接,接口,python数据库接口支持非常多的数据库,你可以选python怎么打包整个项目
python怎么打包整个项目,环境,标准,项目,培训,工作,工具,脚本,状况,以上,版本,distutils-Python自带的基本安装工具,适用于非常简单的应用场python中如何定义int类型
python中如何定义int类型,标准,数字,数据,培训,基础,整数,数据类型,赋值,布尔,类型,标准数据类型python3中有六个标准的数据类型:Number(数字)python中整数怎么定义
python中整数怎么定义,基础,数据,培训,数字,整数,赋值,布尔,变量,定义,复数,pythonint有多种数字类型:整型int、长整型、布尔型bool、浮点数flpython怎么定义函数的返回值
python怎么定义函数的返回值,培训,代码,简介,函数,语句,定义,类型,结束,结果,上面,python定义函数的返回值的方法:函数返回值简介函数需要先定python怎样连接mysql数据库
python怎样连接mysql数据库,培训,数据,流程,项目,一致,系统,名字,数据库,参数,结果,python数据库接口支持非常多的数据库,你可以选择适合你项python连接数据库
python连接数据库,培训,数据,项目,一致,流程,数据库,参数,结果,接口,语句,python连接数据库推荐使用MySQLdb。Python数据库接口支持非常多的