2015-11-06 85 views
1

我面临着使用枚举的问题。错误:预期'=',',',';','asm'或'__attribute__'enableSSHSFTPKeyMode'

下面是代码:

.h文件中

enum sshd_sftp_status 
{ 
    SSHD_SUCCESS =0, 
    SSHD_FAILED =1, 
    SSHD_KEYS_NOT_INSTALLED =2, 
}; 

extern sshd_sftp_status enableSSHSFTPKeyMode(int isSshSftpOnlyLogsActivated); 

.c文件

sshd_sftp_status enableSSHSFTPKeyMode(int isSshSftpOnlyLogsActivated) 
{ 
    if(isSshSftpOnlyLogsActivated) 
    { 
     //code 
    } 
    return SSHD_SUCCESS; 
} 

与上面的代码,我得到下面的错误在编译:

error: expected '=', ',', ';', 'asm' or 'attribute' before 'enableSSHSFTPKeyMode'

If I chang e返回类型从enumint,它工作正常。

帮帮我。

回答

2

就在您的类型名称前加上enum关键字 - 这就是导致您的错误的原因。

extern enum sshd_sftp_status enableSSHSFTPKeyMode(int isSshSftpOnlyLogsActivated); 

enum sshd_sftp_status enableSSHSFTPKeyMode(int isSshSftpOnlyLogsActivated) 
{ 
    if(isSshSftpOnlyLogsActivated) 
    { 
     //code 
    } 
    return SSHD_SUCCESS; 
} 

或使用typedef这样的 - 这可能是更接近你想要什么:

typedef enum 
{ 
    SSHD_SUCCESS =0, 
    SSHD_FAILED =1, 
    SSHD_KEYS_NOT_INSTALLED =2, 
} sshd_sftp_status; 
+0

是..它的工作..谢谢,,,而只是专门针对C,而不是在这个问题C++?因为我们的C++代码没有这样的东西。 –

+0

这是一个'C'的东西...在C++中,你可以简单地引用不带'enum'的类型... – dragosht

+1

@dragosht ...只有当它是明确的。例如,如果在POSIX中有'struc stat'和'stat'函数,'stat'是指函数而不是类型。 –

相关问题