error C2059 种种 |
发布者:许超 发表日期:2007-02-07 15:13:23.09 |
一日遇到C2059错误,google搜索发现C2059的错误表现有多种。
这里整理一些以及自己遇到的情况,供大家借鉴解决。
第一种:
int main )
{
}
它会引起C2059错误,错误信息:error C2059: syntax error : )
第二种:
#include
#define TEST
int main(int argc, char* argv[])
{
#ifdef TEST
printf(\nTEST defined %d, TEST);
#else
printf(\nTEST not defined);
#endif
return 0;
}
它也会引起C2059错误,错误信息:error C2059: syntax error : )
另外一种:
struct ag_type
{
int a;
float b;
};
void func(ag_type arg = {5, 7.0});
它也会引起C2059错误,错误信息:error C2059: syntax error : ) 还会附带error C2143:。
第三种,也是本人遇到的,
刚开始,比较怪异,现象:
1 使用openssl库,在另一个工程里,ok,没问题。
2 在出问题工程里,不在.h文件出现 #include
3 在出问题工程里,在.h文件出现 #include
此时,在openssl路径配置正确情况下,在某一.h文件只写入
#include
会出现error C2059: syntax error : constant 错误。
解决:
经仔细研究,对比,试验,发现,openssl的头文件有顺序之分。加入下面句子,即
正常。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
根据经验,这是一例头文件互耦比较严重的问题,遇到此种情况,需调整.h文件
出现序列即可解决此类C2059问题。
总结:人们在设计各种规则的同时,隐含的也设计出来了各种烦恼。
人们就是既要享受这些规则带来的好处,也要经受问题的刁扰。
经验告诉我们,利大于弊。
没有评论:
发表评论