2014-12-07 124 views
2

是否有可能使枚举公开,在默认情况下是私人模块?制作枚举公开

module mod 

    private 

    enum, (public,) bind(c) !Doesn't work 
     enumerator(, public) :: ENUM1, ENUM2,... !Doesn't work 
    end enum 

end module 

我想保持默认私有模块数据,但希望枚举,而不必一一列举了个别像这样被公众:

public :: ENUM1, ENUM2,... !Works 

据我所知,枚举只是整数参数,所以我我很好奇,是否有可能一次为所有人做到这一点。

回答

3

您尝试执行的操作不符合Fortran 2008 4.6.1的语法规则,因此无法在枚举定义中插入公共属性。

也没有办法将枚举数作为一个组放在public语句中,您必须列出它们中的每一个。

这些枚举被添加到Fortran中,或多或少地仅用于C互操作性(注意强制性的bind(c)),并且不适合其他语言。