【发布时间】:2013-11-18 17:36:40
【问题描述】:
我在测试一些 C 代码时遇到了这个奇怪的问题 编译错误
以下代码无法编译
#include<stdio.h>
void main()
{
int length=6;
__asm
{
mov eax,length
}
}
Visual Studio 报如下错误
test.c(7) : error C2400: inline assembler syntax error in 'second operand';
found 'newline'
但是,我注意到如果我将变量名称更改为其他名称,例如 lengths,那么一切都很好,以下代码可以毫无困难地编译
#include<stdio.h>
void main()
{
int lengths=6;
__asm
{
mov eax,lengths
}
}
我尝试过使用其他编译器,例如 Digital Mars 和 Intel Compiler,但在任何地方都无法编译第一个代码。
可能是什么问题? length 在别处有其他定义吗?
我还想补充一点,这是一个文件,而不是一个项目,所以 不能有多个声明。
【问题讨论】:
标签: c visual-c++ compiler-errors