[Linux-programlama] Re: c - header file

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

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


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.