Bogue de compilation avec le paramètre template = void* - page 15

 

Voici la "bonne" définition pour vous, puisque vous aimez vous en prendre à tout))))

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

ils ne sont pas superflus ! ils aident à lire la logique de la formation de l'expression !

Le nombre de parenthèses affecte-t-il la vitesse ? - à moins que cela n'affecte la vitesse de frappe, mais personne ne le regarde..... le nombre de crochets que chaque utilisateur tape en une journée sur le web en est un excellent exemple )))).

C'est une garantie de corrections rapides et sans erreur à l'avenir.

 
Dmitry Fedoseev:

C'est la garantie de révisions rapides et sans erreur à l'avenir.

voilà ! au moins quelqu'un qui sait écrire de manière courte et formelle, moi je complique toujours les choses et j'écris beaucoup de lettres... oups, c'est reparti)))

 
Ilya Malev:

Voici une définition "correcte" pour vous, puisque vous aimez vous en prendre à tout)))).

Un autre exemple de parenthèses inutiles : chasser le nombre de parenthèsesinutiles - manquer les nécessaires

(( ~ MASK(( t),( n))) << t( b ))
Les parenthèses ne sont donc pas une garantie d'une telle chose, mais au contraire - relaxe
 

Vous n'avez pas besoin de parenthèses autour de t et n - ils ne peuvent pas être composés. Très bien, puisque nous avons une conversation si festive, considérons ceci )))).

#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 ))))))  

Après cela, j'ai réalisé que ( long( 1 ) << N ) est 2 fois plus rapide, mais ce n'est pas le sujet).

 
A100:

Un autre exemple de parenthèses inutiles : en cherchant à réduire le nombre de parenthèsesinutiles, on oublie les parent hèses nécessaires.

Vous avez mis trop de parenthèses comme "inutiles". Si l'on se fixe comme objectif de supprimer autant de parenthèses que possible, afin que le compilateur ne se mette pas à jurer, on a peut-être raison, mais cet objectif ne vaut pas la peine quand on veut écrire du code qui sera à première vue compréhensible pour soi et pour les autres (surtout si l'on considère la mise en évidence des doubles parenthèses dans l'éditeur).

 
Ilya Malev:

(Je ne suis pas sûr de cela ;)))

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

Une erreur de compilation. Qu'est-ce qui était attendu ?

 
A100:

C'était une erreur de compilation. Qu'est-ce qui était attendu ?

C'est juste pour la beauté de la chose. Il y a 128 autres définitions attachées à cette définition pour qu'elle fonctionne, mais je ferais mieux d'épargner les lecteurs de la branche ;)))

 
Igor Makanu:

ils ne sont pas superflus ! ils aident à lire la logique derrière la formation de cette expression !

Eh bien, si elles vous aident, alors que Dieu soit avec vous. Seulement, votre message parlait de "la brièveté est la sœur du talent". Je demande donc comment cette affirmation peut être combinée avec une abondance de parenthèses excessives. Je n'en ai pas besoin pour comprendre la logique. Cela signifie-t-il que je suis plus doué ? )
 
Alexey Navoykov:
Je n'ai pas besoin d'eux pour comprendre la logique. Cela me rend-il plus talentueux ? )

Un autre objectif pour les Adeptes : oui, nous les avons battus à plate couture).