2012-10-15 77 views
3

我得到這個錯誤在該線C頭文件:錯誤:預期「;」,「」或‘)’前‘和’令牌

char * getFechaHora(time_t & tiempoPuro); 

在C源代碼文件我是包括頭文件並給函數一個實現

char * getFechaHora(time_t &tiempoPuro){...} 

也在我的頭文件中,我包括正確的「time.h」庫。

+12

還是讓狀態這再次:'C/C++'不是一種語言。 – 2012-10-15 21:14:30

+1

C僅通過值。如果要更改傳遞給函數的變量的值,則必須將指針傳遞給它。 –

回答

5

在C,如果字符* getFechaHora,這是你的功能和兩個(time_t的& tiempoPuro)的參數,你應該申報的功能:

char * getFechaHora(time_t, tiempoPuro); 

否則,如果第二個是一個變量,聲明爲

char * getFechaHora(time_t *tiempoPuro); 
16
char * getFechaHora(time_t & tiempoPuro); 

這不是C. C沒有參考(&)。

2

問題是您使用的&符號。通過參考以這種方式通過不支持C.在C實現這一點,則需要在一個指針傳遞給變量,像這樣:

char * getFechaHora(time_t * tiempoPuro); 

技術上,你還在按值傳遞(傳遞值),但它會完成相同的操作(修改函數的局部變量tiempoPuro所指向的值將會將變量局部變量的值更改爲它所調用的函數)。

參考:Pass by Reference

相關問題