Standardın takip edilmesi gerektiğini anlıyorum, ancak programcının yaratıcılığına pranga koymuyor mu? farklı derleyicilerin standartları takip etme tarzında hala bazı farklılıklar vardır. Örneğin, performans ve hız açısından çok iyi, yani tüm önemli olan bir kod yazabilirim, ancak yine de standartları kesinlikle takip etmeyebilir.
Hayır. Standart, ne yapmasına izin verildiğini söyler. Belirtilmezse, tanımlanmamış davranış bölgesindesiniz ve daha sonra tüm bahisler kapalıdır - program herhangi bir şey yapmakta serbesttir.
Eğer belirli bir örnek söz yana void main()
VS int main()
, benim cevap artırabilir.
void main()
ana işlevin standart bir açıklaması değildir. Bazı derleyiciler üzerinde uzantılarla çalışabilir, ancak uygulamaya dayanır. Çalışsa bile, istediğiniz şeyi yapıp yapmadığını kontrol etmeniz gerekir. Sorun şu ki, derleyici geliştiricileri bir void main()
sonraki derleyici sürümü ile kaldırmaya karar verebilir ve uygulamanızı bozabilir .
Diğer yandan, standart ana imzayı açıkça tanımlar int main()
ve ne yapması gerektiğini söyler.
Öte yandan, standartta tanımlanmayan şeyler var. Ardından başka bir standart uygulanabilir (örneğin, POSIX gibi). En iyi örnek, c ++ 03 standart programlarının 1 iş parçacıklı olması nedeniyle c ++ 03'teki iş parçacığı uygulamasında olabilir. Bu durumda, platforma bağlı kitaplığı veya boost gibi bir şeyi kullanmak zorunda kalırsınız .