|
1. Fortran 和 C 语言的指针完全是两回事。你不能在fortran里混合使用他们。
2. loc函数是不标准的写法,只是部分编译器的扩展,不建议使用。
3. loc函数获得的,是内存地址。但fortran的指针远不止地址。所以绝对不能 => loc()
4. 你不能习惯性的把C语言的想法放在fortran里。C语言的指针就是地址,但fortran不是。
fortran的指针,除了地址之外,还包括但不限于数组的大小,维度,每个维度的上下限,间距等。
5. C严格的说,不是高级语言,而是中级语言。或者是偏低级的高级语言。而 Fortran 是完全的高级语言。
这里说的高级低级,是指更偏向计算机底层,还是更偏向于人类习惯。而不是指谁更牛。
6. C语言灵活。Fortran语言严谨。比如,fortran的指针包含了目标的概要描述,因此更安全,不容易指歪。
相比而言,C语言的指针只是地址,很容易出现不可控。(当然,程序员良好的习惯可以避免)
7. Fortran 里,没有“指针数组”,只有“指向数组的指针”,也没有“指向指针的指针”。
8. 由于 Fortran 语言更严谨。所以,它很难容许不确定数据类型,不确定数组大小范围的情况。你必须确定以下内容:
a. neighbor_addrs 指向的内容是什么类型?
b. args->src_addr 指向的内容是什么类型?
c. neighbor_addrs 这个指针数组有多大?
9. 如果你确定了这些问题,我可以尝试帮助你修改你的代码。 |
|