面试题答案
一键面试模块(module)的作用
- 封装与信息隐藏:模块允许将相关的数据和子程序封装在一起,实现信息隐藏。模块内部的数据和子程序可以被隐藏起来,只有模块提供的特定接口可供外部程序单元访问,这样可以保护数据的完整性和安全性。
- 代码组织:有助于将大型程序分解为较小的、更易于管理的单元。通过将相关功能放在同一个模块中,使代码结构更清晰,易于维护和扩展。
- 共享数据和过程:不同的程序单元(如主程序、子程序等)可以使用模块中定义的数据和子程序,避免重复代码,提高代码的复用性。
在模块中定义类型、变量和子程序的示例
module my_module
implicit none
! 定义类型
type :: my_type
integer :: num
real :: value
end type my_type
! 定义变量
type(my_type) :: my_variable
integer :: shared_integer
contains
! 定义子程序
subroutine my_subroutine()
my_variable%num = 10
my_variable%value = 3.14
shared_integer = 20
end subroutine my_subroutine
end module my_module
在其他程序单元中使用该模块
program use_my_module
use my_module
implicit none
call my_subroutine()
print *, 'my_variable%num:', my_variable%num
print *, 'my_variable%value:', my_variable%value
print *, 'shared_integer:', shared_integer
end program use_my_module
在上述示例中,my_module
模块定义了一个自定义类型 my_type
,以及该类型的变量 my_variable
和一个普通整数变量 shared_integer
。模块中还包含一个子程序 my_subroutine
。在 use_my_module
程序中,通过 use my_module
语句使用了该模块,并调用了模块中的子程序,访问了模块中的变量。