SORU
16 Mayıs 2014, Cuma


Bir kez #pragma C 11 standart bir parçası mı?

Geleneksel olarak, standart ve taşınabilir C birden fazla başlık kusurları önlemenin yolu/#ifndef - #define - #endifÖn-derleyici direktifleri de macro-guard scheme (bkz: kod parçacığını aşağıda) denilen düzeni kullanmak için.

#ifndef MY_HEADER_HPP
#define MY_HEADER_HPP
...
#endif

Çoğu uygulamaları/Derleyiciler (aşağıdaki resme bakın) ancak, yok bir daha "zarif" makro-gardiyan düzeni #pragma once adlı aynı amaca hizmet eden alternatif. #pragma once makro-gardiyan düzeni, daha az kod adı çatışmalarda kaçınma ve bazen geliştirilmiş derleme hızı da dahil olmak üzere ile karşılaştırıldığında pek çok avantajı vardır.

enter image description here

Biraz araştırma yapmak, #pragma once Yönerge neredeyse bilinen tüm Derleyiciler tarafından desteklenen olmasına rağmen, #pragma once Yönerge C 11 standardının bir parçası olup olmadığı konusunda bir turbidness olduğunu fark ettim.

Soru:

  • Birisi #pragma once Yönerge C 11 standart veya bir parçası olup olmadığını açıklayabilirsin?
  • Eğer C 11 standart bir parçası değilse, daha sonra serbest bırakır (örneğin, C 14 veya üstü) de dahil olmak üzere herhangi bir planları var mı?
  • Ayrıca, eğer birisi daha fazla tekniklerinden birini kullanarak dezavantajları (yani, makro-koruma karşı #pragma once)/avantajları hakkında ayrıntılı olsaydı güzel olurdu.

CEVAP
16 Mayıs 2014, Cuma


#pragma oncedeğilstandart. Bir yaygındır (ama kullanılan evrensel) uzantısı

  • eğer taşınabilirlik endişelerinizi sınırlıdır, ve
  • dosyaları dahil tüm her zaman yerel bir disk üzerinde olduğundan emin olabilirsiniz.

Standardizasyon için kabul edildi, ama nedeniyle reddedildi güvenilir bir şekilde uygulanamıyor. (Bu sorun oluşur dosyaları birkaç farklı uzaktan bağlar ile erişilebilir.)

Oldukça kolay görevlisi vardır vardır emin olun. tek bir gelişme içinde çatışmalar. Kütüphaneler için, hangi olabilir çok farklı gelişmeler tarafından kullanılması, bariz bir çözümdür bekçi bürosu için rastgele bir sürü oluşturmak için oluşturduğunuzda. (İyi bir editör bunu yapmak için ayarlanabilir yeni bir başlık açtığınızda size.) Ama bu bile olmadan, Henüz arasındaki çatışmalar herhangi bir sorunla karşılaşmadan kurdum kitaplıkları.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ArkticPlanet

    ArkticPlanet

    9 ŞUBAT 2010
  • Canal TekZoom

    Canal TekZoo

    1 NİSAN 2012
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012