Est memset(&mystruct, 0, sizeof mystruct) même que mystruct = { 0 };?

Je suis en train de lire à propos de la initialisée valeurs par défaut d'un tableau/struct et cette question:

est memset(&mystruct, 0, sizeof mystruct) même que mystruct = { 0 }; ?

si elle ne l'est pas, quelle est la différence?

  • Faites-vous? Alors qui était le sizeof variante qui n'a pas besoin de parens?
  • sizeof dans C, est un opérateur non pas une fonction. Le () est facultatif. Voir memset(&f, 0, sizeof f); il fonctionne très bien pour moi.
  • Les gens, les regarder jusqu'à ce que la définition de sizeof est. C'est un opérateur unaire qui s'opère soit sur une variable ou un expression cast. Comme vous le savez déjà, une expression cast est un type entre parenthèses. Donc sizeof lui-même n'a pas "besoin" de la parenthèse, c'est l'expression cast qui en a besoin.
  • Droit, mon propos était de souligner que la parenthèse n'est pas une partie de sizeof mais sur l '"objet", il fonctionne sur. De même avec returnqui me gêne beaucoup quand les gens mettent systématiquement entre parenthèses, comme si c'était une fonction.
  • Ok, je vais acheter que - désolé pour la prise de ce sur une tangente.
  • Non, vous avez eu raison de fait référence de la norme, mon commentaire était en effet un peu bâclée.
  • Pourquoi le premier commentaire a été supprimé? les commentaires maintenant semble un peu pas de sens.

InformationsquelleAutor Jack | 2012-05-28