Fortran Coder

标题: 所以控制字符到底是怎么回事呢 [打印本页]

作者: 通配符    时间: 2022-4-7 16:51
标题: 所以控制字符到底是怎么回事呢
看Fortran95/2003程序设计的时候,发现了控制字符的概念,但是我在Compaq visual Fortran 里面试了一下,并没有什么效果。(控制字符被当作普通字符输出)所以控制字符是只在行式打印机里面有效吗?还是说有别的机制呢?

作者: 通配符    时间: 2022-4-7 16:58
我又用一个古老的fortran powerstation for windows3.1试了一下,发现控制字符确实是启用的(如下图)

所以为什么和书上说的"但是现有的最近 50 年编写的 Fortran 程序都已经采用了控制字符功能,没有编译器厂商能够将这个功能删除,而不冒失去市场份额的危险。我希望对于不确定的未来,控制字符的功能是所有Fortran编译器的一部分。"不一样呢...


作者: 唐汉    时间: 2022-4-8 06:02
如果可以看到StackOverflow的话直接去看原答案吧已经够详细的了:Stackoverflow上的回答
其中的几个回答都很不错。建议都看看。

简单来说就是这东西实在是太老了,这个控制字符是为了行式打印机服务的。在每一行的第一列的会给行式打印机一些信息来告诉行式打印机诸如“我要不要跳过这一行”这类的信息。而这种东西不应该是编程语言该关心的部分,因为太过于依赖硬件了。在一个比较现代的Fortran标准里面(03之后),控制字符(control characters)可以出现在固定格式里。这个目的再明显不过了,就是为了兼容老一些的代码(这是03标准里的解释:Nevertheless, for compatibility with Fortran77, control characters remain permitted in principle in fixed source form.)。你说的那本Chapman的书也太老了,这本书的后面几版也没有再提到这个概念。我自己也从来没有碰到需要处理这种问题的时候,可能处理一些老代码会遇到。
作者: fcode    时间: 2022-4-8 08:39
现代程序用不上,也不够标准。

所以,跳过这部分内容吧。

即便你是要阅读老代码,输出结果的排布形式稍有不同,也不影响你理解代码思维。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2