Performans avantajı, #pragma bir kez okunduktan sonra dosyayı yeniden açmak zorunda kalmamaktır. Muhafızlarla, derleyici dosyayı tekrar içermemesi gereken bilgileri almak için (zaman içinde maliyetli olabilir) dosyayı açmalıdır.
Bu teori sadece bazı derleyiciler, her derleme birimi için herhangi bir okuma kodu olmayan dosyaları otomatik olarak açmayacağı için.
Her neyse, tüm derleyiciler için geçerli değildir, bu yüzden ideal olarak #pragma platformlar arası kod için bir kez kaçınılmalıdır, hiç standart değildir / standart bir tanımı ve etkisi yoktur. Ancak, pratikte, gardiyanlardan gerçekten daha iyi.
Sonunda, bu durumda her derleyicinin davranışını kontrol etmek zorunda kalmadan derleyicinizden en iyi hıza sahip olduğunuzdan emin olmak için daha iyi bir öneri hem pragmayı bir kez hem de korumaları kullanmaktır.
#ifndef NR_TEST_H
#define NR_TEST_H
#pragma once
#include "Thing.h"
namespace MyApp
{
// ...
}
#endif
Bu şekilde her ikisinden de en iyisini elde edersiniz (platformlar arası ve derleme hızına yardımcı olur).
Yazmak daha uzun olduğu için, kişisel olarak tüm bunları çok kötü bir şekilde oluşturmaya yardımcı olacak bir araç kullanıyorum (Visual Assist X).
#pragma once
görünür ben dahil korumaları kurtulmak ve birlikte hepsini yerine alma sürecinde kulüpler VS 2008 bazı sınıf görünümü sorunları önlemek için#pragma once
bu nedenle.