C'deki iş parçacıklarıyla ilk defa çalışıyorum ve işlev argümanlarını iletirken sorun yaşıyorum. Bazı nedenlerden dolayı bu konuya ihtiyacım var. Bir sunucuya mesaj gönderen bir işlev var. Benim fonksiyonunun başlığıdır:C - pthread bağımsız değişkenler
void* sender (char* payload, void (*Callback)(char*))
Sonra benim ana (basitleştirilmiş), aşağıdaki iş parçacığı oluşturulamadı:
main()
{
pthread_t sender_id;
int err_s;
err_s = pthread_create (&sender_id, NULL, &sender, NULL);
}
sorun benim fonksiyon gönderen bu soruyla o kadar çok argüman olmasıdır Hata:
note: expected 'void * (*)(void *)' but argument is of type 'void * (*)(char *, void (*)(char *))'
Eğer birileri bana yardım ederse ben minnettar olurum.
Bu mümkün değildir. Bir iş parçacığı içinde kullanılabilen her işlevin imzası olmalıdır: void * thread_func (void * arg). Bunun yerine iki argüman yükünü ve geri aramayı içeren bir struct kullanmanızı öneririm. –