Programlama Temelleri 4 (C Veri Tipleri ve Mantığı)

CyberXhackk

Kıdemli Üye
13 Mar 2016
3,132
10
C/C++ Dev.
Yazdiginiz konu o kadar cok yanlis bilgi iceriyor ki kapsamli bir yanit vermek istedim. Dogru bilgiler yanlis bilgilerden daha az konuma gelmis.

Öncelikle /* ... */ ikonunu görmek mümkündür. Bu ikon bir açıklamanın operatörü şeklinde seyretmektedir.

Yorum satirlari'na ikon ve operator ifadesini kullanmissiniz. C ve C++ dilinde ikon ifadesinin karsiligi olan bir terim bulunmamaktadir. Ayrica operator kavrami cok daha komik. Yorum satirlari derleyici ile alakali bile degil ki operator olsun.

Açıklama operatöründen


Dedigim gibi operator degil bunlar. Konuyu yanlis anlamissiniz.

#include ifadesi de stdio.h nin derlemesine dahil olacağını ifade etmektedir.

Bu ifade de tamamen yanlis. "include" onislemci direktifinin tek yaptigi is copy/paste islemidir. Ilgili sistemin belirli klasorleri altinda bulunan stdio.h dosyasinin icerigini kaynak dosyaya kopyalar.

main yani ( ) ikonu aslında özel bir programlama işaretini ifade etmektedir.

Ozel bir programlama isareti? Main yalnizca bir user-defined function. Derleyiciler main ismini entry point aliyorlar yalnizca. Ikon ve ozel bir programlama isareti terimi uydurma bir terim.

Bunun anlamı; ana programın ilgili dosya içerisinde saklandığını söylemesidir. İlgili programın yürütülmesi işlemine bu dosya ile başlanmaktadır.

Butun obje kodlarin linkerdan gecip birlestirilmis hali executable file'da saklanir. Main yalnizca bir fonksiyondur. Dosya degildir!

stdio.h standard girişi ve çıkışı (Standart-Input - Output) olarak kütüphane fonksiyonlarının içinde yer alan dosyadır.


Baslik dosyasinda ilgili fonksiyonlar yer almaz. Fonksiyonlarin bildirimleri yer alir. Fonksiyonlar sisteminde derlenmis halde bulunur.

> Bu tür derleyici söz konusu olduğunda hata ayıklama işleminin farklı renkte gösterilmesi gerekir. Bu işi kolaylaştırmak için sunulmaktadır.

DevC++ Derleyici degildir. Arkadaplanda mingw derleyicisini kullaniyordu en son.

> Satırın sonuna noktalı virgül işareti konur.

; bir delimeter. Ve her satirin sonunda bulunmasi zorunlu degildir.

int main() { int x; int y; int z; }

Gecerli bir C programidir. C'de satir kavrami yoktur. Expression ve Statement kavramlari vardir.

> Her blokta ve fonksiyonun başlangıcında, bitişinde sıra ile { } sembolleri bulunur.

{} sembol anlamina gelmez. Teknik ismi compound literaldir.

> Programlama dili içerisinde “C” değişkenler ve sabitlerin programın başında bulunduğu görülür.

C89 standartlarina gore yazmiyor iseniz blogun istediginiz yerinde olabilirler.


Bu linkteki kod gecerli bir C kodu degildir. Keske once kodu derleyip sonra yukleseydiniz...

char isim = "abc"; // Gecersiz bir deyim.

Harf ile başlama zorunluluğu bulunur.

Degisken isimleri _ ile baslayabilir.

> Sabitlerin oluşturulması da değişkenlerin oluşturulması huşunda benzerlik göstermektedir. Ancak değişme birtakım kuralları mevcuttur. Bu kuralları aşağıda bulabilmek mümkün.

Sabitler dediginiz kavrami tamamen yanlis anlamissiniz. #define ile olusturulan makrolara sabit diyoruz. const nesneler de birer degiskendir. Oradaki constluk ture iliskin bir kavramdir.

Mevcut sabitlerin içerikleri program boyunca değiştirilmemektedir.

Const nesnelerin degerlerini degistirebiliriz. Bu durumda UB olusur.

> C programında yer alan sabitler “#define” ön işlemciye ait komut ile tanımlanır. Bu komuta fonksiyon tanımı yapılırken; sabit bildirim ile makro fonksiyon tanımı uygun olur.

Son olarak da bu paragraftan hicbir sey anlamadim...
 

KaptanTR

Alpha Wolf
17 Nis 2015
1,650
1,583
25
Yazdiginiz konu o kadar cok yanlis bilgi iceriyor ki kapsamli bir yanit vermek istedim. Dogru bilgiler yanlis bilgilerden daha az konuma gelmis.

Öncelikle /* ... */ ikonunu görmek mümkündür. Bu ikon bir açıklamanın operatörü şeklinde seyretmektedir.

Yorum satirlari'na ikon ve operator ifadesini kullanmissiniz. C ve C++ dilinde ikon ifadesinin karsiligi olan bir terim bulunmamaktadir. Ayrica operator kavrami cok daha komik. Yorum satirlari derleyici ile alakali bile degil ki operator olsun.

Açıklama operatöründen

Dedigim gibi operator degil bunlar. Konuyu yanlis anlamissiniz.

#include ifadesi de stdio.h nin derlemesine dahil olacağını ifade etmektedir.

Bu ifade de tamamen yanlis. "include" onislemci direktifinin tek yaptigi is copy/paste islemidir. Ilgili sistemin belirli klasorleri altinda bulunan stdio.h dosyasinin icerigini kaynak dosyaya kopyalar.

main yani ( ) ikonu aslında özel bir programlama işaretini ifade etmektedir.

Ozel bir programlama isareti? Main yalnizca bir user-defined function. Derleyiciler main ismini entry point aliyorlar yalnizca. Ikon ve ozel bir programlama isareti terimi uydurma bir terim.

Bunun anlamı; ana programın ilgili dosya içerisinde saklandığını söylemesidir. İlgili programın yürütülmesi işlemine bu dosya ile başlanmaktadır.

Butun obje kodlarin linkerdan gecip birlestirilmis hali executable file'da saklanir. Main yalnizca bir fonksiyondur. Dosya degildir!

stdio.h standard girişi ve çıkışı (Standart-Input - Output) olarak kütüphane fonksiyonlarının içinde yer alan dosyadır.

Baslik dosyasinda ilgili fonksiyonlar yer almaz. Fonksiyonlarin bildirimleri yer alir. Fonksiyonlar sisteminde derlenmis halde bulunur.

> Bu tür derleyici söz konusu olduğunda hata ayıklama işleminin farklı renkte gösterilmesi gerekir. Bu işi kolaylaştırmak için sunulmaktadır.

DevC++ Derleyici degildir. Arkadaplanda mingw derleyicisini kullaniyordu en son.

> Satırın sonuna noktalı virgül işareti konur.

; bir delimeter. Ve her satirin sonunda bulunmasi zorunlu degildir.

int main() { int x; int y; int z; }

Gecerli bir C programidir. C'de satir kavrami yoktur. Expression ve Statement kavramlari vardir.

> Her blokta ve fonksiyonun başlangıcında, bitişinde sıra ile { } sembolleri bulunur.

{} sembol anlamina gelmez. Teknik ismi compound literaldir.

> Programlama dili içerisinde “C” değişkenler ve sabitlerin programın başında bulunduğu görülür.

C89 standartlarina gore yazmiyor iseniz blogun istediginiz yerinde olabilirler.


Bu linkteki kod gecerli bir C kodu degildir. Keske once kodu derleyip sonra yukleseydiniz...

char isim = "abc"; // Gecersiz bir deyim.

Harf ile başlama zorunluluğu bulunur.

Degisken isimleri _ ile baslayabilir.

> Sabitlerin oluşturulması da değişkenlerin oluşturulması huşunda benzerlik göstermektedir. Ancak değişme birtakım kuralları mevcuttur. Bu kuralları aşağıda bulabilmek mümkün.

Sabitler dediginiz kavrami tamamen yanlis anlamissiniz. #define ile olusturulan makrolara sabit diyoruz. const nesneler de birer degiskendir. Oradaki constluk ture iliskin bir kavramdir.

Mevcut sabitlerin içerikleri program boyunca değiştirilmemektedir.

Const nesnelerin degerlerini degistirebiliriz. Bu durumda UB olusur.

> C programında yer alan sabitler “#define” ön işlemciye ait komut ile tanımlanır. Bu komuta fonksiyon tanımı yapılırken; sabit bildirim ile makro fonksiyon tanımı uygun olur.

Son olarak da bu paragraftan hicbir sey anlamadim...

Değerli yorumunuz için teşekkür ederim. 🙏

Elinize sağlık hocam

Elinize,emeğinize sağlık.

Teşekkürler. 🙏
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.