意外类型'<unnamed-tag>'</unnamed-tag>

时间:2011-07-05 15:14:08

标签: c

我正在Windows 7 64操作系统上将基于C代码的程序转换为Unicode visual studio 2008。我已成功将所有非unicode函数转换为unicode。但是只能在一些基于c代码的函数中获得编译器错误,如下所示:

struct ref_pages *rfl_scan_ref_list( short mode, short class, short element, _TCHAR **refdata )

在上述函数中,class被定义为变量参数。当我们将此函数转换为Unicode时说:

error C2226: syntax error : unexpected type '<unnamed-tag>'
'class' : missing tag name

有人有什么想法吗?

4 个答案:

答案 0 :(得分:5)

您不能将“class”用作变量名称。您正在使用c ++编译器,“class”是保留关键字。

答案 1 :(得分:1)

您发布的行中没有错误。

显然你没有为你的C代码使用C编译器。 为什么?将C编译器用于C代码; Pascal代码的Pascal编译器; Lisp代码的Lisp编译器;等...

我相信Visual Studio有一个选项可以使它成为C编译器。您需要找到该选项并进行设置。

答案 2 :(得分:1)

正如其他人所说,你使用的是C ++编译器,而class是C ++中的保留关键字。要强制VS2008充当C编译器,请右键单击项目名称,选择属性。然后浏览到配置属性 - &gt; C / C ++ - &gt; 高级,然后将编译为选项更改为编译为C代码

答案 3 :(得分:0)

class是C ++中的保留关键字。你应该使用另一个变量名。