重新定义'i'错误

 手机用户2502855477 发布于 2022-12-18 17:51

所以我有以下C代码:

for (int i = 0; i < nWallSegments; i+=4) {
  fscanf(fin, "%le %le %le %le", &wallSegments[i+0], &wallSegments[i+1], &wallSegments[i+2], &wallSegments[i+3]);
}

for (int i = 0; i < nWallSegments; i+=4) {
  nWallPoints += ceil(dist(wallSegments[i+0], wallSegments[i+1], wallSegments[i+2], wallSegments[i+3]) / dWallPoints) - 2;
  // other stuff here
}

当我尝试编译时,我收到以下错误.来自Python背景,我不知道发生了什么.我在网上搜索了答案,但没有运气.

Prog.c:44:12: error: redefinition of 'i'
  for (int i = 0; i < nWallSegments; i+=4) {
           ^
Prog.c:40:12: note: previous definition is here
  for (int i = 0; i < nWallSegments; i+=4) {c

pablo1977.. 6

它取决于编译器和/或标准C的版本.

在标准C 1999及更高版本(C99和C11)中,允许在循环中声明一个变量,而且,范围只是循环,就像在C++中一样.

通过使用一些现代C语言进行编译,您的代码必须正常运行.

我使用GCC选项-std = c99(或c11).
在这种情况下,您的代码适合我.

1 个回答
  • 它取决于编译器和/或标准C的版本.

    在标准C 1999及更高版本(C99和C11)中,允许在循环中声明一个变量,而且,范围只是循环,就像在C++中一样.

    通过使用一些现代C语言进行编译,您的代码必须正常运行.

    我使用GCC选项-std = c99(或c11).
    在这种情况下,您的代码适合我.

    2022-12-18 17:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有