From: Serdar AKYEL (serdar.akyel@smartsoft-it.com)
Date: Tue 22 May 2007 - 22:56:26 EEST
Merhaba Arkadaşlar,
Bende test ettim kodu, fakat benim dikkat çekeceğim nokta ben hiç
bir yerde tanımlı olmayan bir fonkiyon call ettim XFunction(); diye, ve bunu
VC++ 6.0 da compile ettigimde hata vermiyor sadece şu şekilde bir warning
veriyor "assuming extern returning int"
Yani TreeFunction() kullanımı aslında yanlış bir kullanım ama VC++
6.0 derlerken extern olabilecegini dusunuyor obje dosyalarını link ederken
ise TreeFunction() fonksiyonunu 3.o objesinden bulup yerine koyuyor, yani
biraz artificial davranıyor galiba :).
Extern tanımlayarak değişkenler gördürülebilir, fakat
fonksiyonlardaki benzer durumu değişkenlere niye uygulamıyor VC++ 6.0 onu
anlayamadım doğrusu.
Biraz derleyici bagımlı bir konu gibi geldi problem bana ek olarak.
-----Original Message-----
From: linux-programlama-bounces@liste.linux.org.tr
[mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Caglar
Akyuz
Sent: Tuesday, May 22, 2007 7:54 PM
To: linux-programlama@liste.linux.org.tr
Subject: [Linux-programlama] Re: c - header file
dreamer1983 wrote:
>Merhaba Arkadaslar,
Merhaba,
> "header.c" "1.h" yi include ediyor, "1.c" "2.h" yi include ediyor ve 2.c
> deki TwoFunction() fonsiyonunu çağırabiliyorum(2.h de TwoFunction()
> declerationı bulunuyor).
> "header.c" "1.h" yi include ediyor, "1.c" "2.h" yi include ediyor,"2.c"
> "3.h" yi include ediyor ve 3.c deki TreeFunction() fonsiyonunu
> çağırabiliyorum.(3.h de TreeFunction() declerationı bulunmuyor).
Linker programında sadece bir tane "TreeFunction" deklerasyonu olduğu
için header için de olmasada link edebiliyor. O yüzden çağırabiliyorsun.
Ama yine de yakınmıştır bu durumdan linker...
Değişkenlerini header içinde deklere edersen include ettiğin her yerde
"multiple declerations" tarzı bir hata alırsın. O yüzden değişkenlerini
sadece bir kez *.c dosyasında tanımlayıp, ilgili *.h dosyasında extern
etmek daha yakışıklı olur :)
Ayrıca derleyici bunlar için sana hata ve uyarı vermiştir.
Saygılarımla
Caglar Akyuz
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama