fortran 佛说如是甚深经典。我从昔来所得慧眼。未曾得闻如是之经。
手气不错
Article

003.case-insensitive_大小写不敏感

2026年5月11日入门级

在Fortran源代码中,所有关键字标识符的大小写都不敏感;只有字符字面量里的大小写会作为数据本身被保留。

本文代码

  ! Fortran的保留关键字大小写不敏感。
  ! 例如 program、PROGRAM、PrOgRaM对编译器来说是相同的。
program caseInsensitiveDemo

  implicit none
  ! 也可写作ImPlIcIt NoNe ,我暂不做这种不健康示范。

  integer :: Score
  character(len=*), parameter :: lowerText = "fortran"
  character(len=*), parameter :: upperText = "FORTRAN"

  
  ! Fortran 的标识符对大小写不敏感。
  ! 下面先给Score赋值,之后用score和SCORE读取同一个变量。
  Score = 90

  print *, "Score =", Score
  print *, "score =", score
  print *, "SCORE =", SCORE

  ! 字符串字面量的内容不会被编译器改大小写。lowerText和upperText输出的文本内容不同。
  print *, "lowerText =", lowerText
  print *, "upperText =", upperText
  print *, "lowerText == upperText ?", lowerText == upperText ! 
end program caseInsensitiveDemo

编译与运行

(base) hong@hongdeMacBook-Pro 003.case-insensitive % gfortran practiceCaseInsensitive.f90 
(base) hong@hongdeMacBook-Pro 003.case-insensitive % ./a.out 
 Score =          90
 score =          90
 SCORE =          90
 lowerText =fortran
 upperText =FORTRAN
 lowerText == upperText ? F
(base) hong@hongdeMacBook-Pro 003.case-insensitive % 

运行分析

  • Score、score、SCORE是同一个变量,print输出理所当然一致。
  • lowerText == upperText 使用相等关系运算符 ==,来判断变量lowerText与upperText的值是否相等。代码中lowerText的值是”fortran”,upperText的值是”FORTRAN”。虽然Fortran源码中的标识符大小写不敏感,但字符字面量中的内容会保留大小写,因此这两个字符串的值不相等,表达式结果为.false。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注