【问题标题】:Error in compiling process [closed]编译过程中的错误[关闭]
【发布时间】:2012-02-21 07:40:24
【问题描述】:

当我尝试在 http://www.exploit-db.com/exploits/16/ 编译脚本时出现错误。 我正在使用 dev-c++,它告诉我:

(( C:\...\Untitled1.cpp In function `void send_ping_overflow(SOCKET, DWORD, char*, short int)':
|| 104 C:\...\Untitled1.cpp name lookup of `i' changed for new ISO `for' scoping
|| 100 C:\...\Untitled1.cpp   using obsolete binding at `i'  ))

【问题讨论】:

  • 我并不总是编译漏洞利用程序,但当我这样做时,我不知道自己在做什么。

标签: c++ dev-c++


【解决方案1】:

for (int i, ...)

变量i 正在for 循环构造中声明。这实际上是 C 语言中一种新的(相对而言!)能力 - 最初,变量需要在使用它们的块的顶部声明。

您正在使用的令人难以置信的过时编译器(请参阅the dev-c++ tag wiki page)正在向您发出警告,因为您没有按照 C99 标准或更高版本进行编码。请注意,C99 中的“99”是 1999 年或 13 年前的。您一定是用大约 21 年前的 C90 编写的。

我建议切换到更新/更好的 IDE,例如 Eclipse

【讨论】:

  • +1 表示“您正在使用的编译器非常过时”
  • 其实 OP 问题似乎出在 C++,而不是 C。
  • @Ivella 你是对的,但我太喜欢嘲笑了。真正的问题是变量是在for循环头中声明的,然后在循环体下面使用。
  • C++ 标准在 1998 年修复了这个问题,所以差别不大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多