CallExternal
位于 base
包(package)。 说明
要传递的函数R已编译的 C/C++ 代码的对象已加载到R.
用法
.Call(.NAME, ..., PACKAGE)
.External(.NAME, ..., PACKAGE)
参数
.NAME |
给出 C 函数名称的字符串,或引用此类名称的 |
... |
要传递给编译代码的参数。 |
PACKAGE |
如果提供,则限制对字符串的搜索 该参数遵循 这是为了增加包的安全性,通过使用这个参数可以确保没有其他包可以覆盖它们的外部符号,并且还可以加快搜索速度(请参阅“注意”)。 |
细节
这些函数用于调用使用内部函数的编译代码R对象,将参数作为序列传递给代码R对象。它们采用 C 调用约定,因此通常也可用于 C++ 代码。
有关如何编写与这些函数一起使用的代码的详细信息,请参阅“编写 R 扩展”手册中的“系统和外语接口”一章。它们的不同之处在于参数传递给 C 代码的方式:.External
允许可变或无限数量的参数。
这些函数是 primitive ,并且 .NAME
始终与提供的第一个参数(不应命名)匹配。为了清楚起见,请避免在传递给 ...
的参数中使用与 .NAME
匹配或部分匹配的名称。
值
一个R在编译代码中构造的对象。
外部代码的头文件
编写与这些函数一起使用的代码将需要使用内部R‘中定义的结构Rinternals.h'和/或'中的宏Rdefines.h’。
注意
如果要频繁使用这些函数之一,请指定 PACKAGE
(将搜索限制为单个 DLL)或将 .NAME
作为本机符号对象之一传递。搜索符号可能需要很长时间,尤其是在加载许多命名空间时。
你可能会看到PACKAGE = "base"
对于链接到的符号R。不要在您自己的代码中使用此符号:此类符号不是 API 的一部分,可能会在没有警告的情况下进行更改。
PACKAGE = ""
曾经被接受(但未记录):现在它是一个错误。
参考
Chambers, J. M. (1998)
Programming with Data. A Guide to the S Language.
Springer. (.Call
.)
也可以看看
“编写 R 扩展”手册。
相关用法
- R Colon 冒号运算符
- R Constants 内置常量
- R Control 控制流
- R Comparison 关系运算符
- R Cstack_info 报告有关 C 堆栈大小和使用情况的信息
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Modern Interfaces to C/C++ code。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。