6
böyle birden fazla değişken bildirmek yapabiliyorsanız:Her resmi argümanın veri türünü neden ayrı ayrı belirtmeliyiz?
void fun(int i, j, k)
yerine:
void fun(int i, int j, int k)
böyle birden fazla değişken bildirmek yapabiliyorsanız:Her resmi argümanın veri türünü neden ayrı ayrı belirtmeliyiz?
void fun(int i, j, k)
yerine:
void fun(int i, int j, int k)
int i, j, k;
neden hata alıyorum
Çünkü C sözdizimi bu şekilde çalışmıyor. Parametre beyanları, çeşitli şekillerde değişken bildirimlerden farklıdır, örn.
void fun(int i, double x);
vs sözdizimi tarafından izin verilir denedin formu (örneğin onun func fun(i, j, k int)
ile gidin izin uzatıldı olabilirdi iken, standart komitesi bu yapmamaya karar
int i, double x; // syntax error
muhtemelen hala geriye dönük uyumluluk için ANSI C89/ISO C90 desteklenmiştir eski tarz ("K & R" önceden 1989) parametre söz dizimi, karşısında kafa karıştırıcı olabilir, çünkü.
void fun(i, j) // K&R syntax: implicitly int i, int j
{
}
void fun(i, p)
int *p; // int i implicit!
{
}
// What's this? double i? double *i? Mixed K&R/ANSI syntax with implicit int i?
void fun(double *x, i)
{
}
Dil özelliklerinden dolayı. – sehe
Prototipler olmadan C'nin tarih öncesi davranışı ve C++ tarafından yapılan tasarım kararının önerdiğiniz sözdizimine izin vermemesi. Ayrıca, mevcut işlev tanımı 'void f1 (int i1, int i2, double d1, double d2)' verildiğinde, varyant sözdiziminize nasıl yazarsınız? void f1 (int i1, i2; çift d1, d2) '? Yoksa noktalı virgül yerleştirdiğim bir virgül mü kullanırdınız? Veya başka bir şey? –
İlk satır, * üç * değişken, ikincisi ise yalnızca birini bildirir. Doğru benzetme, int a = 1, * b = & a, foo (char, char); –