04 Ağustos 2020, 08:04:44

Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME


Farklı IDElerde C++

Başlatan mr.engineer, 15 Temmuz 2020, 23:00:39

mr.engineer

Merhaba,
Kitaptan yazdığım bir kodda strcpy ve strcat fonksiyonları kullanılıyor. Kodun aynısını visual studio'da yazdım fakat şöyle bir hata aldım:
strcat: this function or variable may be unsafe...
Bunun yerine strcpy_s ve strcat_s kullan diye yazıyordu.
Overflow ihtimaline karşı bu fonksiyonlar kullanılıyormuş. Bunları düzeltince sorun düzeldi.
Aynı kodu ilk haliyle DEV-C++'da yazınca sorunsuz çalışıyor.
Bunların sebebi ikisinin kullandığı derleyicilerin farklı olması mıdır? İlk defa farklı bir derleyici kullanıyorum, böyle farklılıklar çok oluyor mu?
 
Daha önce de bir başka kod DEV-C'de sadece uyarı verirken VS'de hata vermişti ama pek önemsememiştim.


Tesla.25

16 Temmuz 2020, 22:34:23 #1 Son düzenlenme: 16 Temmuz 2020, 22:36:01 Tesla.25
Derleyiciler arası farklılık tamamen. Özellikle Microsoft kendi derleyicisinde kafasına göre özellik ekleyip çıkartabiliyor. Zaten MS derleyicisi ISO standardında bir derleyici değil.

Bu sebeple ben Microsoft geliştirme ortamlarından nefret ediyorum.

C++ 'ın ISO standartlarını araştırır ve bu standartlara bağlı kalırsanız program hemen her yerde çalışır. Daha doğrusu Windows işletim sistemi dışında hemen her yerde çalışır(MS en temel C++ fonksiyonlarında bile kıllık yapabilir sizin durumunuzda olduğu gibi. )

GCC derleyicisi C\C++ standartlarına olabildiğinde bağlı kalan ve en iyi derleyicilerden biri. Zaten bu sebeple de gömülü sistemlerde hep GCC tabanlı derleyiciler kullanılıyor.

brandice5

strcpy_s fonksiyonu C11 den itibaren dahil edildi. Dev-C++ eski bir IDE olduğu için kurulumla gelen derleyici C11 desteklemiyor olabilir. VS sürekli güncellendiği için yeni fonksiyonları kullanabiliyorsunuzdur.

mr.engineer

Teşekkürler.

Visual Studio'da yeniyim genel olarak beğendim. Gördüğüm en güzel IDE diyebilirim. En büyük dezavantajı ise şimdiye kadar hiçbir IDE'nin böyle bilgisayarı kastırdığını görmedim.