error C2275: “XXX”: 将此类型用作表达式非法

简介: 在移植c++代码到c的时候,经常会出现一个奇怪的错误,error C2275: “XXX”: 将此类型用作表达式非法 表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。

在移植c++代码到c的时候,经常会出现一个奇怪的错误,
error C2275: “XXX”: 将此类型用作表达式非法

表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。


解决的办法就是把变量的申明全部放在变量的生存块的开始。

 

初学C语言,这是我写的一个程序: #include <stdio.h> #include <string.h> int main(void) { 	char fname[20],lname[20]; 	int n,m;
printf("Please enter your first name:\n"); scanf("%s",&fname); printf("Please enter your last name:\n"); scanf("%s",&lname); n = strlen(fname); m = strlen(lname);
printf("%s %s\n",fname,lname); printf("%*d %*d\n",n,n,m,m); printf("%s %s\n",fname,lname); printf("%-*d %-*d",n,n,m,m);
getch(); return 0; } 当我把int n,m;放在scanf()后一句,程序就要报错,而把int n,m;放在开头就没有错。这是什么原因?不是说只要在首次使用变量前声明变量就可以了吗?
 
 
这个跟编译器的原理有关系。大部分的c语言编译器要求变量的声明在程序最前面。所以当你将声明移到scanf下面时,会出现这种错误。而c++则不会。
相关文章
|
6月前
|
SQL
根据一个类型 获取该类型的 特殊判断 优雅写法
根据一个类型 获取该类型的 特殊判断 优雅写法
|
10月前
学生信息管理系统——出现str2$变量未定义问题(后续/关于数据类型的类型符)
学生信息管理系统——出现str2$变量未定义问题(后续/关于数据类型的类型符)
57 0
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
1198 0
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
判断Object中数据类型(已知类型、未知类型))
判断Object中数据类型(已知类型、未知类型))
110 0
|
JavaScript 前端开发 API
TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }
TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }
TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }
成功解决pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
成功解决pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
成功解决pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
|
前端开发 Java 程序员
实现nest中未定义参数的入参校验
实现nest中未定义参数的入参校验
实现nest中未定义参数的入参校验
|
SQL 关系型数据库 MySQL
MySql 使用 NOT IN 返回值包含null值,返回数据不全
MySql 使用 NOT IN 返回值包含null值,返回数据不全
212 0
MySql 使用 NOT IN 返回值包含null值,返回数据不全
解决vs2019无法解析的外部符号问题,未找到xxx的函数定义
解决vs2019无法解析的外部符号问题,未找到xxx的函数定义
解决vs2019无法解析的外部符号问题,未找到xxx的函数定义
|
SQL 存储 数据库
未经处理的异常在 System.Data.dll 中发生。其他信息:在应使用条件的上下文(在 ‘***‘ 附近)中指定了非布尔类型的表达式。
机房收费系统中,有些人在联合查询这个模块用的是存储过程,我先尝试着在数据库中建立了一个视图,然后在UI层做个判断并生成查询条件strCondition。
未经处理的异常在 System.Data.dll 中发生。其他信息:在应使用条件的上下文(在 ‘***‘ 附近)中指定了非布尔类型的表达式。