当在模块的
use
语句中添加intrinsic
关键字时,意味着什么呢?例如以下示例: use, intrinsic :: iso_c_binding
(来自FFTW 3.3.6-pl1的Fortran接口概述7.1)
它是否指定应使用由编译器提供的具有该名称的模块,即使存在用户编写的同名模块?
use
语句中添加intrinsic
关键字时,意味着什么呢?例如以下示例: use, intrinsic :: iso_c_binding
(来自FFTW 3.3.6-pl1的Fortran接口概述7.1)
它是否指定应使用由编译器提供的具有该名称的模块,即使存在用户编写的同名模块?
使用 use, intrinsic :: ...
将选择内置模块。
关于“应该使用与编译器提供的同名模块”,这里有一个微小的细节值得注意。这里的“应该”并不是表示偏好,而是强制性要求。也就是说,如果没有这样的内置模块,则无法进行编译。虽然 iso_c_binding
不会出现这个问题,但编译器经常提供自己的非标准内置模块。
无法说“如果内置模块可用,则使用内置模块,否则使用用户提供的模块”。