IDE可以找到逻辑错误吗?
是的,一些IDE(如Visual Studio)有连续的语法检查,可以发现一些逻辑错误。然而,只有在代码中存在某些奇怪的情况时,才会发现逻辑错误,而没有人工智能试图找出代码实际上打算做的事情。
比如你写这在Visual Studio中的C#方法:
int a = 1;
int b = 2;
Console.WriteLine(a + a);
那么IDE会发现,你从来没有使用过的变量b
,并提出警告的波浪线下的形式变量。指向它将显示消息The variable 'b' is assigned, but its value is never used
。
IDE无法知道,如果你打算输出a + b
,而不是a + a
,并简单地使用a + a
是不够的奇呈现一个警告,但可以看到你创建的变量b
和你可能打算把它用于某些东西。
未使用的参数。 –
不是。
有时候它可以代表我认为代码路径可能永远不会执行。
int x = 9;
if (x != 9)
{
foo();
}
它也许能够告诉你,你已经声明了一些东西而不使用它。这是你可以抓住自己的东西。然而,真正的威力在调试器中,您可以在其中使用“watch”或locals/autos,并在任何范围内使用step-in/out/over代码,查看它们何时更改,以及自己更改值以查看需求即将发生。这是测试逻辑的好方法。在汇编中,你可以将代码移回几行并重复它......它不能保证工作,但你可以覆盖任何东西。
我认为这个例子符合逻辑错误。 –
您需要_define_您的意思是基本逻辑错误。逐个错误,缓冲区溢出,无限循环等等。由于在某些情况下,大量的“逻辑错误”可能是有效的(在意图上,显然它在语法上是有效的,否则它将是一种语法而不是逻辑错误),我会在我的IDE标记它时感到恼火。就像我对一个IDE(*咳嗽*微软*咳嗽*)恼怒,当我知道如何正确使用它时,将'strcpy'标记为“不安全”,就好像:-) – paxdiablo
任何逻辑错误。我只想知道IDE是否能够找到它们,无论类型或简单性如何。 – isif