aşağıdaki gibi bir kod parçası geldi? Durum düzgün bir şekilde uygulanacak mı?#if tanımlı (x) || (y); bu geçerli mi?</p> <pre><code>#if defined(x) || y </code></pre> <p>yukarıdaki deyimi ne demektir: Bir inceleme sırasında
cevap
Evet geçerlidir. İşte
Standardı (C99) 6.10p1 diyor budur:
if-group:
# if constant-expression new-line groupopt
# ifdef identifier new-line groupopt
# ifndef identifier new-line groupopt
defined
operatör sabit ifadesi (6.10.1p1) ait tekli operatör parçası olarak görülüyor. Makro x
tanımlanır eğer örnekte
y
0
Evet, defined(x)
bir boolean olduğundan ve true veya false değerini döndürür.
Yukarıdaki ifade, "x, tanımlı veya y doğru" anlamına gelir.
... veya her ikisi de olabilir. :) – phimuemue
daha tanımlanmış ve farklı ise bunun için akıl iki yönlüdür. bunun (&&
, ||
vs.) mantıksal operatörler kullanmak üzere düzgün dahildir böylece kodunuzu çoğaltmak gerekmez böylece yerine #ifdef
kullanmanın
, sen defined
operatörünü kullanın Tanımlamanız gerekenler için birden fazla ölçüt varsa. Bence da
#ifdef x
daha #if defined(x)
olarak okumayı bulmak ve bu #ifdef
ile mümkün değildir, oysa #if defined(x) && defined(y)
aşağıdaki yapabilirdi.
Bu doğru ama kötü bir uygulama. Neden bir koşulda iki farklı değerlendirme ('y' ve 'tanımlı (x)') kullanırız. Başkaları için kafa karıştırıcı olabilir. Aşağıdaki örnek || ve # tanımlanmış makroları karşı & & operatiors:
#define AA 1
#define BB 2
#if (defined AA) || (defined BB)
#warning "A or B"
#endif
#if (defined AA) && (defined BB)
#warning "A and B"
#endif
Yukarıdaki kod kullanıcı ekranda bu mesajları alacağı çalıştırıldı Ne zaman:
#warning "A or B"
#warning "A and B"
Ama kodu (AA tanımsız oldu) böyle olsaydı:
#undefine AA
#define BB 2
#if (defined AA) || (defined BB)
#warning "A or B"
#endif
#if (defined AA) && (defined BB)
#warning "A and B"
#endif
sonra kullanıcı bu mesajı alacak:
#warning "A or B"
burada kullandığınız sözdiziminin farklı olduğunu unutmayın: "tanımlı (x)" yerine "tanımlı x". her ikisi de aynı sonucu verir. – StarShine
- 1. if()</ dev/null
- 2. Bu bağlamda groovy << operatörü ne demektir?
- 3. <!--[if !IE]> ne zaman kullanılır?
- 4. java.lang.IllegalArgumentException: y olmalıdır <bitmap.height()
- 5. Ant (1.6.5) - Bir <condition> veya <if>
- 6. kısa yol yazmak için (\ (x, y) -> (f x g y)) lambda daha özlü</p> <pre><code>\(x, y) → (f x, g y) :: (a, b) → (c, d) </code></pre> <p>geç nasıl fonksiyonları <code>f :: a → b</code>, <code>g :: c → d</code> için
- 7. Dinamik İfade Oluşturma <Func<T,Y>>
- 8. Bul bütün x ve y değerleri ben iki diziyi <code>x</code> ve <code>y</code> sahip
- 9. Bu nokta neden ücretsiz tanım Haskell'de çalışmıyor?</p> <pre><code>relativelyPrime x y = gcd x y == 1 </code></pre> <p>noktası içermeyen:
- 10. << = operatör javascript’te ne yapıyor?
- 11. Git, <<<<<<< HEAD dosyasına
- 12. django request.session.get ("name", False) - Bu kod ne anlama geliyor?</p> <pre><code>if request.session.get("name",False): </code></pre> <p>herkes Yukarıdaki kod ne döndüğünü söyleyebilir:
- 13. TensorFlow operatör aşırı yükleme</p> <pre><code>tf.add(x, y) </code></pre> <p>ve TensorFlow içinde</p> <pre><code>x + y </code></pre> <p>arasındaki fark nedir
- 14. Ekran x if y eğer y (hatalı başlık biliyorum)
- 15. typeof (x) şablon argümanı olarak mı?</p><code>f</code> bir fonksiyonu ve <code>y</code> bir değişkendir <pre><code>auto x = f(y); </code></pre> <p>, hem başka bir yerde tanımlanmış:
- 16. -><- operatör ne yapar? Bu ne</p> <pre><code>IntPredicate neg = x -> x <- x; </code></pre> <p>, ters çift lambda çeşit:
- 17. pcolormesh? x, y, z</p> <p>ve aşağıdaki kodu:
- 18. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 19. Ben</p> <pre><code>IF :SAL > 4000 THEN SET_ITEM_PROPERTY('EMP.SAL',VISUAL_ATTRIBUTE,'VA_COLOR'); END IF; </code></pre> <p>Bu kod tüm sütun renkli bu kodu kullanıyorum görsel niteliği
- 20. İki-arg işlevi bir diziye nasıl uygulanır?</p> <pre><code>[a b c ...] </code></pre> <p>ve bir işlev <code>(f x y)</code>:
- 21. Java "<<" ne anlama geliyor?
- 22. Kontrol: '</p> <pre><code>... if ($(this:enabled)){ //some code } ... </code></pre> <p>Sana normalde biliyorum: jQuery
- 23. Coercing, "% m /% d /% y" Ben şu kodu <pre><code>data$Date <- as.Date(data$Date, "%m/%d/%y") </code></pre> <p></p> kullandık
- 24. `(y * y) <x 'işlevi iki bağımsız değişkene uygulanır, ancak' Bool 'türünde hiçbiri
- 25. Nedir? ve << demek?
- 26. PureScript'te üçlü işaret (<<< `) işareti ne kadar azdır?
- 27. NumPy: <code>idx</code> bir <code>x</code> dilime eksene 0 dizini içeren</p> <pre><code>for j in range(yt): for i in range(xt): y[j, i] = x[idx[j, i], j, i] </code></pre> <p>: istediğim vektörleşen atama
- 28. X {..} <- getYesod notasyonu
- 29. Bu operatörler Elixir'de ne anlama geliyor? ~ >>, << ~
- 30. Değişken adından sonra 2 virgül, bash'ta ne demektir?</p> <pre><code>${reportName,,} </code></pre> <p>Ben googling tarafından bir şey bulamadı, bu yüzden herkes bu ne biliyor ,, demek:
* Yürüt * doğru sözcük değil. Bu kod derleme zamanında önceden işlenir. Sözdiziminin doğruluğundan emin değilim, ama en çok * değerlendirilebilir * ancak genellikle "#if tanımlı (x)" in doğru sözdizimi "#IFDEF x" –