【问题标题】:Convert fortran-iso-c-binding real variable to real将 fortran-iso-c-binding 实数变量转换为实数
【发布时间】:2014-01-22 09:02:13
【问题描述】:

使用 fortran-iso-c-binding 我可以接口 C 函数并获取类似类型的变量

real(c_float)
integer(c_int)

但是在程序的其余部分我想使用基本类型(仅仅是因为我不想仅仅因为一个接口函数而用real(c_float) 变量替换许多实变量)

是否有一种安全、平台/编译器独立且可靠的方法可以将 fortran-iso-c-binding 类型转换回 fortran(原始)类型? equivalent to REAL()

【问题讨论】:

    标签: c fortran fortran-iso-c-binding


    【解决方案1】:

    真正的内在是你想要的。或者等价的简单赋值。

    REAL(C_FLOAT) :: r_c
    REAL :: r_default
    r_default = r_c
    

    如果要转换的值超出目标种类的范围,则您的程序不合格。

    【讨论】:

    • REAL intrinsic documentation - section Arguments 声明参数“应为整数、实数或复数”。
    • 声明为 REAL(C_FLOAT) :: x 的对象是 REAL 类型的对象。您可以使用 REAL 内在函数在不同种类的实数之间进行转换。根据定义,赋值的作用是相同的。
    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 2011-05-15
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    相关资源
    最近更新 更多