我使用以下代码收到此编译错误:
错误C2143:语法错误:缺少';'在'使用'之前
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include "s.h"
using namespace std;
这怎么可能?如何解决?
答案 0 :(得分:19)
"s.h"
可能包含未以;
当您包含标题时,C预处理器会将替换标题的内容放入内联中,因此,如果您查看s.h
,您可能会发现;
答案 1 :(得分:1)
错误发生在s.h
。在C ++中,#include
只是一种文本插入机制,因此如果头文件的末尾包含错误,则可能会在#include
错误文件的文件中收到错误。
答案 2 :(得分:1)
也可能是s.h不是C ++头但是C头没有声明extern C试图替换你的
#include "s.h"
与
#ifdef __cplusplus
extern "C"
{
#endif
#include "s.h"
#ifdef __cplusplus
}
#endif
你也可以在头文件中解决这个问题。