SORU
19 Aralık 2012, ÇARŞAMBA


Neden herhangi bir parametre (asıl fonksiyonu tanımına göre) ile bir işlev derleme mi?

Sadece derleme yüzden kafam karıştı, birisi C kodu rastladım. Anlamadığım iki nokta var.

İlk olarak, fonksiyon prototip gerçek bir işlev tanımına göre parametre vardır. İkinci olarak, fonksiyon tanımında parametre türü yok.

#include <stdio.h>

int func();

int func(param)
{
    return param;
}

int main()
{
    int bla = func(10);    
    printf("%d", bla);
}

Neden bu işe yarıyor mu? Derleyici bir kaç test var, ve gayet iyi çalışıyor.

CEVAP
19 Aralık 2012, ÇARŞAMBA


Diğer tüm cevaplar doğru, ama sadece completion için

Bir işlevi aşağıdaki şekilde bildirildi:

  return-type function-name(parameter-list,...) { body... }

dönüş tipiişlev bir değişken türüdür. Bu dizi yazın ya da işlevi bir türü olabilir.Verilmez, int sonra kabul edilir.

işlev adıfonksiyonun adı.

parametre listesiişlevi virgülle ayrılmış götüren parametrelerin listesi.Eğer herhangi bir parametre verilirse, o zaman fonksiyonu herhangi almaz ve boş bir set ile tanımlanmalıdır parantez ya da kelime boşluğu ile. Eğer değişken tipi önündeyse paramater listesinde bir değişkenin, sonra int kabul edilir. Diziler ve işlevler geçirilir, ancak otomatik olarak dönüştürülür işaretçiler. Eğer listede üç nokta ile sona erer ( ... ) parametreleri ayarlamak numarası yok. Not: başlık stdarg.h olabilir üç nokta kullanırken erişim değişkenler için kullanılır.

Ve yine bütünlüğü uğruna. From C11 specification 6:11:6 (sayfa: 179)

işlevi boş parantezli declarators( prototip-format parametre türü declarators)bir obsolescent. özelliği.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • LimeFire

    LimeFire

    2 ŞUBAT 2012