c++老是出现错误,不知道原因syntax error
1个回答
2016-08-15 · 知道合伙人数码行家
琅玥天敏
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:5267
获赞数:12927
12年进网络中心协助处理问题(详情如下)http://caijing.nxnews.net/qyfc/201503/t20150306_3356507.html
向TA提问 私信TA
关注
展开全部
你好,解决方法如下:
1、出现错误显示:error C2059: syntax error : 'string'是因为extern "C"是C++中的关键词,不是C的。
2、
一般我们都将函数声明放在头文件,当我们的函数有可能被C或C++使用时,我们无法确定被谁调用,使得不能确定是否要将函数声明在extern
"C"里,所以,我们可以添加
#ifdef __cplusplus
extern "C"
{
#endif
//函数声明
#ifdef __cplusplus
}
#endif
这样的话这个文件无论是被C或C++调用都可以
3、
extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字.,它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。
(1)对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误
(2)通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数或者变量与开放给外面,则在h文件中用extern加以声明。所以外部文件只用include该h文件就可以了。而且编译阶段,外面是找不到该函数的,但是不报错。link阶段会从定义模块生成的目标代码中找到此函数。
3。与extern对应的关键字是static,被它修饰的全局变量和函数只能在本模块中使用。
1、出现错误显示:error C2059: syntax error : 'string'是因为extern "C"是C++中的关键词,不是C的。
2、
一般我们都将函数声明放在头文件,当我们的函数有可能被C或C++使用时,我们无法确定被谁调用,使得不能确定是否要将函数声明在extern
"C"里,所以,我们可以添加
#ifdef __cplusplus
extern "C"
{
#endif
//函数声明
#ifdef __cplusplus
}
#endif
这样的话这个文件无论是被C或C++调用都可以
3、
extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字.,它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。
(1)对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误
(2)通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数或者变量与开放给外面,则在h文件中用extern加以声明。所以外部文件只用include该h文件就可以了。而且编译阶段,外面是找不到该函数的,但是不报错。link阶段会从定义模块生成的目标代码中找到此函数。
3。与extern对应的关键字是static,被它修饰的全局变量和函数只能在本模块中使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询