原因:
【C】error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
实质上,纯c要求局部变量定义必须在函数或局部空间的开头,然后才能有其他语句。纯c确实对变量声明的位置有要求,c++却可以随用随定义的。 说明vs是严格执行了纯C的标准。变量任意定义是C99的标准。这是C89的标准,C99也没有这个限制。问题是微软拒绝支持C99(包括VS2012),一股当年IE6的作风。可以用/tp参数把程序作为C++代码编译,就可以通过了。或者,根本没有这么麻烦,将int b拉到最顶,就没事了。
就是要你完成所有局部变量的定义,你才能写代码。
将局部变量的定义移动至函数开头即可。
2 “F_OK”: 未声明的标识符
解决方法:
搜索关键词: F_OK,找到以下链接
access函数
模仿其代码,增加宏定义:
#define F_OK 0 /* Test for existence. */
3 无法解析的外部符号 localtime_r
localtime、localtime_s、localtime_r的使用
其中有以下:
localtime_r也是用来获取系统时间,运行于linux平台下。localtime_s也是用来获取系统时间,运行于windows平台下,与localtime_r只有参数顺序不一样
localtime_r(&cur_time, &now);
localtime_s(&now,&cur_time);
并增加相应的头文件。
类似的还有将 sleep()改为Sleep。
C语言中的Sleep函数用法
近期使用
VS
2012做C程序设计时,出现了这样的
错误
提示:
error
C2143
:
语法错误
:
缺少
";"(在“
类型
”的
前面
)。检测
代码
时发现并没有什么语法上的
错误
,但是就是
无法
运
行
。
错误
提示如下:
代码
如下:
#include<stdio.h>
#include<stdlib.h>
void main(){
int n ;
1,第一个方法,将源
文件
的后缀名改为.cpp
文件
,因为在C++中可以随意定义变量,而.cpp是c++语言的源程序,c++兼容c语言的绝大部分语法特性。
2,第二个方法,找到变量定义的位置,将变量定义在函数的起始位置。
演示如下图所示
关键在于调整为utf-8编码。在Linux上写的
代码
,中文部分默认使用utf-8编码,然而在Windows,由于微软十分的中国用户,将编码模式改成了GBK,这样就导致C++工程
无法
生成解决方案,因此需要进
行
如下工作。
参考Microsoft官方文档“
编译
器
错误
C2143
”:
https://docs.microsoft.com/zh-cn/cpp/
error
-messages/compiler-
error
s-1/compiler-
error
-
c2143
?f1url=https%...
error
C2143
,一个简单的
编译
问题
,却耗费了大量的时间进
行
分析。
【背景】最近做一个
项目
,需要使用到凌华的运动控制卡和IO卡,在测试工程中,使用的类和引用的库
文件
都一切正常。测试完成后,本着可重复移植的考虑,将整个
文件
夹添加到现有工程中,却出现了非常奇怪的
编译
错误
。首先怀疑是重复包含的
问题
,在每个
文件
头加入了#pragma once,
问题
仍然存在。再一个个修改函数的宏和参数名称,最终确定,居然是函数的一个参数名称出现了
问题
!测试工程没有
问题
,加入到
项目
工程却出现了
问题
,显然与
项目
工程的
文件
有关。
运
行
环境OS:Win32 sp3 32位
VS
2010
最近初学cocos2d,根据教程在头
文件
添加2
行
代码
,如下:
CCAnimation **walkAnimation;
CCAnimation *createAnimationByDirection(int direction);
出现了
问题
:
error
C2143
: 语法
在visual studio 中,出现:
error
C2143
:
语法错误
:
缺少
“;”(在“
类型
”的
前面
)。 这是因为该
编译
器要求把变量定义在函数空间或者局部空间
前面
,不能随便定义。
int n;
scanf("%d", &n);
int i,j;
上述变量在同一空间中,没有定义在空间
前面
,则会报错。而GCC中没
问题
。
相关解答:http://blog.csdn.net/pla
想必很多同志都从网上下载过SSDT HO
OK
驱动程序,这一份是很久之前的一份了,而且网上流
行
的也就这一份,里面的RtlAPI也有过时的,企图
编译
,可是会出现:“‘PVOID’unknown size”这个
错误
,导致
编译
失败。当然这个
错误
在自己编写的驱动中或者是应用程序中也是常见的
错误
,比如下面的
代码
就会出现这样的
问题
:PVOID SSDTServiceBase;//windows define :...
严重性
代码
说明
项目
文件
行
禁止显示
状态
错误
C3861 “backtrack”: 找不到
标识符
N皇后
问题
d:\my document\algorithm\暴力递归\n皇后
问题
\n皇后
问题
\源.cpp 22
错误
C2065 “board”:
未声明
的
标识符
N皇后
问题
d:\my document\algorithm\暴力递归\n皇后
问题
\n皇后
问题
\源.cpp 12
错误
C2275 “std::string”: 将此
类型
用作表达式非法 N皇后
问题
d:\my document\
1、发现
问题
最近用
VS
2010
处理一段C
代码
时发现这样一类
错误
,源程序如下:#include <stdio.h>
#include <stdlib.h>int main(int argc, char **argv){
fprintf(stdout, "Hello C\n");
for (int i = 0; i < 10; i++){
fprintf(stdout,