我正在尝试使用C99编译许多遗留C( VS2008 )代码。为了解决C99代码不受VS2008编译器支持的一些问题,我切换到了C++编译器,但现在面临着C++转换错误的另一个问题:
error C2440: '=' : cannot convert from 'void *' to 'uint8_t *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
在C++编译器上是否有一个设置来禁用该错误,并允许在C++
我使用的是Unity2019.2.18f和VS 201916.4.3 (CSC版本3.4.1-beta4-19610-02)。我对团结和C#都很陌生。
我写了这样的代码:
using (UdpClient client = new UdpClient(...)) {
...
}
VS 2019年建议将该说明简化为:
using UdpClient client = new UdpClient(...);
...
我想那是一个。但是,当我这样做时,返回到Unity中,它会抱怨using语句中缺少父母:
Assets\Scripts\NavioRemote.cs(106,19): erro
这是我第一次使用Visual Studio (2010)进行开发,我注意到:
int *x = malloc(sizeof(int) * 50);
当我尝试构建"main.c“时出现错误。我假设这是因为VS正在使用它的C++编译器来构建C程序。
VS for C生成的代码是否和在Windows下一样好,或者我应该寻找更好的和/或专有于C的代码?
我有一个WPF项目,我用假的建设。但是,由于我使用的是C#元素,比如
if (value is Datatype variable){
//CODE
}
我不再能够建立程序,但从VS我可以运行它。我认为问题在于我在VS中使用了较新的编译器版本。我是否可以将编译器版本从伪版本更改为假版本,或者是否可以强制我的构建脚本使用特定版本。我已经尝试删除这些功能,以检查问题是否真的在此语法上。
#include <stdio.h>
int main()
{
typedef struct s
{
int a;
int b[5];
char c[2];
}st;
st vs[1];
vs[0] = {1,{1,2,3,4,5},{'c','d'}};
printf("%d:a\n",vs[1].a);
printf("%d:b[0]\t %d:b[4]\n",vs[0].b[0],vs[0].b[4])