Şablon parametreli derleyici hatası = void* - sayfa 15

 

Burada, lütfen, "doğru" tanımınız var, çünkü her şeyde kusur bulmayı çok seviyorsunuz)))

 #define   POKE(t, i, b, n, v)     ( i & ((( ~ MASK( t, n )) << t( b )) | (( v & MASK( t, n )) << t( b ))))
 
Igor Makanu :

gereksiz değiller! bu ifadenin oluşum mantığını okumaya yardımcı olurlar!

Parantez sayısı hızı etkiler mi? - peki, yazma hızı dışında, ama bunu kimse izlemiyor .... her kullanıcının internette bir günde ispiyonladığı bukaf sayısı canlı bir örnek)))

Bu, gelecekte hatasız ve hızlı iyileştirmelerin garantisidir.

 
Dmitry Fedoseev :

Bu, gelecekte hatasız ve hızlı iyileştirmelerin garantisidir.

burada! en azından biri kısa ve resmi yazabilir, ben her zaman her şeyi karmaşıklaştırır ve bir sürü mektup yazarım... oops, yine başlıyoruz)))

 
Ilya Malev :

Burada, lütfen, "doğru" tanımınız var, çünkü her şeyde kusur bulmayı çok seviyorsunuz)))

Fazladan parantez kullanmanın yararsızlığına bir başka örnek: Gereksiz parantezlerin peşindeyken, gerekli olanlar eksik

 ( ( ~ MASK( ( t ) , ( n ) ) ) << t( b ) )
Yani parantezler öyle bir garanti vermiyor tam tersine gevşetiyor
 

Evet, t ve n etrafındaki parantezlere orada ihtiyaç yoktu - bunlar bileşik olamazlardı. Tamam, böyle bir içki gittiğine göre, bunu analiz et)))

 #define B64(M,N)      (( N ) < 32                                                                                        \
                    ? (( N ) < 16                                                                                        \
                    ? (( N ) <   8                                                                                        \
                    ? (( N ) <   4                                                                                        \
                    ? (( N ) <   2                                                                                        \
                         ?                                                                                              \
                      (( N ) <   1 ? M ## 0    : M ## 1    )                                                                     \
                    : (( N ) <   3 ? M ## 2    : M ## 3    ))    : (( N ) <   6 ?                                                 \
                      (( N ) <   5 ? M ## 4    : M ## 5    )                                                                     \ 
                    : (( N ) <   7 ? M ## 6    : M ## 7    )))   : (( N ) < 12 ? (( N ) < 10 ?                                   \
                      (( N ) <   9 ? M ## 8    : M ## 9    )                                                                     \
                    : (( N ) < 11 ? M ## 10 : M ## 11 ))    : (( N ) < 14 ?                                                 \
                      (( N ) < 13 ? M ## 12 : M ## 13 )                                                                     \
                    : (( N ) < 15 ? M ## 14 : M ## 15 ))))  : (( N ) < 24 ? (( N ) < 20 ? (( N ) < 18 ?                     \
                      (( N ) < 17 ? M ## 16 : M ## 17 )                                                                     \
                    : (( N ) < 19 ? M ## 18 : M ## 19 ))    : (( N ) < 22 ?                                                 \
                      (( N ) < 21 ? M ## 20 : M ## 21 )                                                                     \
                    : (( N ) < 23 ? M ## 22 : M ## 23 )))   : (( N ) < 28 ? (( N ) < 26 ?                                   \
                      (( N ) < 25 ? M ## 24 : M ## 25 )                                                                     \
                    : (( N ) < 27 ? M ## 26 : M ## 27 ))    : (( N ) < 30 ?                                                 \
                      (( N ) < 29 ? M ## 28 : M ## 29 )                                                                     \
                    : (( N ) < 31 ? M ## 30 : M ## 31 ))))) : (( N ) < 48 ? (( N ) < 40 ? (( N ) < 36 ? (( N ) < 34 ?       \
                      (( N ) < 33 ? M ## 32 : M ## 33 )                                                                     \
                    : (( N ) < 35 ? M ## 34 : M ## 35 ))    : (( N ) < 38 ?                                                 \
                      (( N ) < 37 ? M ## 36 : M ## 37 )                                                                     \
                    : (( N ) < 39 ? M ## 38 : M ## 39 )))   : (( N ) < 44 ? (( N ) < 42 ?                                   \
                      (( N ) < 41 ? M ## 40 : M ## 41 )                                                                     \
                    : (( N ) < 43 ? M ## 42 : M ## 43 ))    : (( N ) < 46 ?                                                 \
                      (( N ) < 45 ? M ## 44 : M ## 45 )                                                                     \
                    : (( N ) < 47 ? M ## 46 : M ## 47 ))))  : (( N ) < 56 ? (( N ) < 52 ? (( N ) < 50 ?                     \
                      (( N ) < 49 ? M ## 48 : M ## 49 )                                                                     \
                    : (( N ) < 51 ? M ## 50 : M ## 51 ))    : (( N ) < 54 ?                                                 \ 
                      (( N ) < 53 ? M ## 52 : M ## 53 )                                                                     \
                    : (( N ) < 55 ? M ## 54 : M ## 55 )))   : (( N ) < 60 ? (( N ) < 58 ?                                   \
                      (( N ) < 57 ? M ## 56 : M ## 57 )                                                                     \
                    : (( N ) < 59 ? M ## 58 : M ## 59 ))    : (( N ) < 62 ?                                                 \
                      (( N ) < 61 ? M ## 60 : M ## 61 )                                                                     \
                    : (( N ) < 63 ? M ## 62 : M ## 63 ))))))  

Sonra gerçekten üzülerek ( long( 1 ) << N ) 2 kat daha hızlı çalıştığını keşfettim, ama mesele bu değil)

 
A100 :

Fazladan parantez kullanmanın yararsızlığına bir başka örnek: Gereksiz parantezlerin peşindeyken, gerekli olanlar eksik

Orada acı bir şekilde birçok parantez "gereksiz" olarak işaretlediğiniz bir şey. Derleyicinin küfür etmeye başlamaması için mümkün olduğunca çok parantez kaldırmak için bir hedef belirlerseniz, haklı olabilirsiniz, ancak birisi ilk başta mümkün olduğunca açık olacak bir kod yazmak istediğinde böyle bir hedef buna değmez. hem ona hem de başkalarına görün (özellikle editördeki eşleştirilmiş parantezlerin vurgulanması dikkate alınarak).

 
Ilya Malev :

bunu analiz et)))

 void f()
{
        u long x = B64( , 3 ); //Error
}

Derleme sırasında hata. Ne bekleniyordu?

 
A100 :

Derleme sırasında hata. Ne bekleniyordu?

Sadece güzellik için yazdım. Çalışması için bu tanıma 128 tanım daha eklendi, ancak şubenin okuyucularını ayırsam iyi olur)))

 
Igor Makanu :

gereksiz değiller! bu ifadenin oluşum mantığını okumaya yardımcı olurlar!

Eğer sana yardım ederlerse, o zaman Tanrı seni korusun. Gönderinizdeki tek konuşma "kısalık - yeteneğin kız kardeşi" ile ilgiliydi. Bu yüzden, bu ifadenin bir sürü gereksiz parantez ile nasıl birleştirilebileceğini soruyorum. Mantığını anlamaları için onlara ihtiyacım yok. Bu daha yetenekli olduğum anlamına mı geliyor? )
 
Alexey Navoykov :
Mantığını anlamaları için onlara ihtiyacım yok. Bu daha yetenekli olduğum anlamına mı geliyor? )

Ustalara karşı bir başka gol: evet, onları yıkıcı bir skorla yendik)