我在使用枚举方面遇到了问题。
以下是代码:
.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'或'属性'之前 'enableSSHSFTPKeyMode'
如果我将回复类型从int
更改为enum
,则效果正常。
帮帮我。
答案 0 :(得分:3)
在您的类型名称前面加上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;
答案 1 :(得分:0)
我遇到了相同的错误,它的发生是由于忘记了最后一行中的;
,例如:
#include <stdio.h>
#define blabla
uint32_t i
enum{
a=0,
b,
c,
};
...