关于如下代码是否存在未定义行为
  • 板块灌水区
  • 楼主__2304__
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/10/21 22:28
  • 上次更新2023/11/2 12:05:23
查看原帖
关于如下代码是否存在未定义行为
719611
__2304__楼主2023/10/21 22:28
int huajian1(int q){
    for(int i=sqrt(q);i>=1;i--)
        if(q%(i*i)==0)
            return i;
}

NOILinux会给-WreturnType的警告,因为返回写在了循环里,可能导致非void函数没有返回值。但是在小图灵、洛谷自测(-O2)上都能A,略加思考,认为是因为无论如何在循环到i=1时必然能整除,所以肯定有返回值。但是我感觉NOIlinux还是一副没有Windows聪明的样子,所以说这到底算不算未定义行为?主要是我怕会引发CE和WA的问题

2023/10/21 22:28
加载中...