obj 文件是目标代码。
mod 文件是由 module 模块生成的,用来让编译器互相了解其他 module 的内容(接口,公有变量等)
obj 用来链接成最终的程序(exe或dll等)
而 mod 用来让编译器在编译其他代码时,获得该module的信息。不参与链接。
求余数啊MOD(5,3)的余数就是2
Fortran有著名的I-N规则,
就是以I-N开头的变量如果不定义,默认为整数,其余的默认为实数。
未赋初值的话,有的编译器为零或零点零,有的是不可预料。
和解释型语言不通,解释型语言因为执行环境在,所以总是能自动定义变量,自动赋给相应的初值比如0,编译型的语言,都应该赋初值。
因为fortran的编译器众多(真的不少,好多大公司的出C编译器同时要出Fortran的),有的会直接给编译通不过错误,有的会自动赋初值0,有的是编译出很小的程序,程序自身不带初始化段,执行时开辟内存空间,会导致值难以预料。
所以最好采用现代的方法,变量都要定义,都要赋初值。
这与具体的平台实现有关。而与 fortran 无关。
在linux平台上,.o 文件通常是编译后的中间文件,是源代码编译后的机器码。单个或多个 .o + 运行时库 = 可执行文件。
可执行文件是最终的结果。
.mod 文件通常是使用了 module 的源代码经过编译后产生的,用于标记该模块的接口。你可以认为是头文件,只不过是自动生成的头文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)