PDA

Tam Sürümünü Görmek İçin : <cmath> & <math>


Lewissi
03/10/2005, 17:43
merhabalar,
C++ da

#include<stdlib>
#include <string>
#include<math>

ile
#include<stdlib>
#include <string>
#include<math>


arasinda ne fark var? yani kutuphane isimlerinin basina c koyunca ne degisiyor.

herkese kolayliklar...


Lewissi
03/10/2005, 17:44
pardon hata olmus.dogrusu

#include<stdlib>
#include <string>
#include<math>

ile
#include<cstdlib>
#include <cstring>
#include<cmath>

MDC
03/10/2005, 19:16
c harfi C++ değilde eski C başlığı olduğunu ifade eder...
Mesela şunu dene olmaz:
<ciostream> // çünkü C++'a ait olan iostream'ın C uyarlaması yoktur!

acehreli
03/10/2005, 21:39
Lewissi; oncelikle, yaptigin yanlisliklari DUZELT'e tikladiktan sonra duzeltebilirsin. Yani yeni mesaj yazmana gerek yok. Ayrica hAlA yanlis yapiyorsun: <cmath> ile <math> basligini degil, <cmath> ile <math.h> basligini karsilastiriyorsun :)

Sonunda .h olan basliklar C'den gelen ve C'de ad alani olmadigi icin, tanimladiklari adlari dogal olarak global ad alaninda sunan basliklardir.

Basinda c olan ve sonunda .h olmayanlar ise, o adlari std ad alaninda sunarlar:


#include <stdio.h>
printf("merhaba"); // <--- dogru; printf biliniyor



#include <cstdio>
printf("merhaba"); // <-- HATA; printf bilinmiyor
std::printf("merhaba"); // <-- dogru


Durum boyle oldugu halde, bu kurali uygulayan cok az derleyici var. Ornegin <iostream> eklendiginde bile printf adi kullanilabiliyor. Ben kendi adima henuz c ile baslayan basliklari benimsemedim. C basliklarini eskiden C'de oldugu gibi kullaniyorum. Yani C++ programlarinda kullanmam gerekiyorsa <stdio.h> basligini ekliyor ve ornegin printf yaziyorum.

Ali