isSshSftpOnlyLogsActivated

isSshSftpOnlyLogsActivated

我面临使用枚举的问题。
代码如下:
.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;
}

使用上面的代码,我在编译过程中出现以下错误:
错误:前面应为“=”、“,”、“;”、“asm”或“attribute”
'启用SshSftpKeyMode'
如果我将返回类型从int更改为enum,它可以正常工作。
帮帮我。

最佳答案

只需在类型名前面加上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;

10-01 14:21