sabit vs değişken üzerinde constexpr
Aşağıdaki tanım arasında bir fark var mı?
const double PI = 3.141592653589793;
constexpr double PI = 3.141592653589793;
Stil tercih edilen değilse, C 11?
CEVAP
Bir fark olduğuna inanıyorum. Haydi onlar hakkında daha kolay konuşabiliriz, böylece onları yeniden adlandırın:
const double PI1 = 3.141592653589793;
constexpr double PI2 = 3.141592653589793;
PI1
PI2
hem sabit, onları değiştirmek mümkün değil yani. AncaksadecePI2
bir derleme zamanı sabiti değil.olacaktırderlenmiş anda başlatıldı. PI1
derleme zamanında başlatılması ya da bir süre çalışabilir. AyrıcasadecePI2
derleme zamanı sabiti gerektiren bir bağlamda kullanılabilir. Örneğin:
constexpr double PI3 = PI1; // error
ama:
constexpr double PI3 = PI2; // ok
ve:
static_assert(PI1 == 3.141592653589793, ""); // error
ama:
static_assert(PI2 == 3.141592653589793, ""); // ok
Hangi kullanmalısınız? İhtiyaçlarınıza uygun hangisi kullanın. Bir derleme zamanı sabiti gerekli olduğu bağlamlarda kullanılabilecek derleme zamanı sabiti olarak var olmak ister misin? Bir hesaplama zamanında yapılması ile başlatmak için mümkün olmak ister misin? Vb.
CSS: x-y ekseni üzerinde sabit pozisyo...
Neden değil't son bir değişken he...
Raylar ve Komisyon sorunları üzerinde ...
R aynı hat üzerinde baskı dize ve deği...
C nasıl durduracağını# değerleri ile s...