Belli bir işlevi asla döndürür gcc
söylemek mümkündür bu fonksiyona tüm çağrı hello();
DÜZENLEME olduğunu. Bu, belirli optimizasyonlara izin verir ve başlatılmamış değişkenlerin sahte uyarılarını önlemeye yardımcı olur.
Bu
noreturn
attribute kullanılarak yapılır: function
noreturn
öznitelik rağmen çıkmıyor
void func() __attribute__ ((noreturn));
ise derleyici (sizin durumunuzda bir hata dönüştürülmüş olur) Gördüğünüz uyarı yayar. kodunuzda noreturn
kullanıyor olası olduğundan beri
, olası açıklama size Adını çatışmalar standart noreturn
fonksiyonu ile, aşağıdaki örnekte olduğu gibi bir işlevi olduğunu: Burada
#include <stdlib.h>
void exit(int) {
} // warning: 'noreturn' function does return [enabled by default]
, exit
benim exit(3)
ile çakışıyor. Böyle bir çarpışma için başka bir açık aday ise abort(3)
'dur. Tabii ki, eğer işleviniz aslında hello()
olarak adlandırılıyorsa, suçlu kesinlikle kod tabanınızda bir yerdedir.
Tam derleyici uyarısını gönderir misiniz? –
Lütfen bir [SSCCE] (http://sscce.org/) oluşturabilir ve bize tam bir örnek gösterebilir misiniz? Ayrıca lütfen _all_ ve _complete_ hata/uyarı mesajlarını da ekleyin. –
Hangi derleyiciyi kullanıyorsunuz? Hangi derleyici seçeneklerini kullandınız? – Bechir