2015-11-06 83 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'是指函數而不是類型。 –

相關問題