COBOL中FILLER字段下定义88级条件名是否合理可用?
COBOL中FILLER声明项下定义88级条目的合法性说明
这种写法完全符合COBOL官方语法规范,示例中定义的88级条件名SOME-NAME可以在程序中正常使用。
示例代码如下:
10 FILLER PIC X(02). 88 SOME-NAME VALUE 'XX'.
相关规则说明:
- 88级条件名的语法约束仅要求它必须从属于一个紧邻的上一层普通数据项,和上一层数据项是否被命名为
FILLER没有任何关系。 FILLER的作用是声明一个不需要被直接按名称引用的匿名数据项,仅限制用户不能直接通过字段名读写这个FILLER项本身,不会影响挂载在它下面的88级条件名的使用:- 过程部可以直接使用
IF SOME-NAME做条件判断、使用SET SOME-NAME TO TRUE给对应FILLER字段赋值为条件名绑定的'XX'值,全程不需要直接引用上层的FILLER字段。 - 这种写法本身就是COBOL开发中的常见实践:如果某块数据你只需要通过条件名判断固定值、不需要直接读取或修改字段的原始内容,就可以把对应字段声明为FILLER,仅保留需要用到的88级条件名,能避免无关字段被误读写。
- 过程部可以直接使用
- 要注意的唯一前提是88级条目必须正确从属于目标FILLER项,也就是编码时层级缩进、层级号的从属关系要对应正确,示例中的写法从属关系是符合要求的。
内容的提问来源于stack exchange,提问作者Valeca
相关产品推荐
相关产品推荐

