我正在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
有人有什么想法吗?
答案 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 ++中的保留关键字。你应该使用另一个变量名。