我在使用枚举时遇到问题。
代码如下:
.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'
如果我将返回类型从 enum
更改为 int
,它工作正常。
帮帮我。
最佳答案
只需在类型名称前加上 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;
关于c - 错误 : expected '=' , ',' , ';' , 'asm' 或 '__attribute__' 在 enableSSHSFTPKeyMode 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560478/