我有以下代码段。这是visual studio 2010中的一个c文件。如果我尝试使用以下行编译它:int hello = 10;注释掉它会编译得很好。如果我评论它中的那一行将无法编译。我错过了什么或者我不应该使用Visual Studio 2010来编译C代码。如果这是一个Visual Studio问题,任何人都可以推荐一个易于使用的IDE /编译器,我可以用于C。
谢谢
int* x = (int*) calloc(1, sizeof(int));
*x = 5;
//int hello = 10;
printf("Hello World! %i", *x);
getchar();
答案 0 :(得分:17)
与C99或C ++不同,您不能在C89中的非声明(如int hello = 10;
)之后声明(如*x = 5;
)。
MSVC 2010仍然不支持C99。
答案 1 :(得分:1)
你仍然可以在编码后声明变量。只需将“yourProject.c”文件更改为“yourProject.cpp”即可正常工作。
答案 2 :(得分:0)
在C中进行类型转换malloc
返回指针是一种不好的做法,并且具有未定义的结果。