我在互联网上看到了这段代码:dot_product(x, x)
这是 Fortran 中的“未定义行为”吗(因为别名)?
最佳答案
不,那里没有未定义的行为,向量与其自身的点积是明确定义的。函数定义不需要对输入参数进行任何修改,修改它们确实是一个奇怪的实现。
(2003 和 2008)标准对重叠(或别名但不是标准使用的语言)参数的限制仅在过程尝试重新定义此类参数时适用。内部 dot_product
的情况并非如此,其参数(如标准中定义)具有 intent(in)
。
关于fortran - 这在 Fortran : dot_product(x, x) 中合法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20650284/