La conversion d'un size_t en un entier (c++)

J'ai essayé de faire une boucle for qui va se répéter basé sur la longueur d'un paquet de réseau. Dans l'API, il existe une variable (size_t) par événement.paquet->dataLength. Je veux que l'itération de 0 à l'événement.paquet->dataLength - 7 augmentation de je par 10 à chaque fois qu'il effectue une itération, mais je vais avoir un monde de mal.

J'ai cherché des solutions, mais ont été incapables de trouver quelque chose d'utile. J'ai essayé de convertir le size_t un unsigned int et faire de l'arithmétique avec cela, mais malheureusement il ne fonctionne pas. Fondamentalement, tout ce que je veux est: est-ce

for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }

Si à chaque fois que je fais quelque chose comme ceci ou de tentative de ma conversions les i < # est un chiffre énorme. Ils ont donné une instruction printf dans un tutoriel pour l'API, ce qui utilisés "%u" pour imprimer le nombre réel cependant, quand je le convertir en un unsigned int, il est toujours incorrecte. Je ne sais pas où aller à partir d'ici. Toute aide serait grandement appréciée 🙂

Pensez-y: Quelle est la valeur de static_cast<unsigned int>(-1)? Ce qui se passe quand event.packet->dataLength est à moins de 7?
Pourquoi ne peut - i être un size_t trop? Aussi, à moins que la longueur est toujours égale à 7 mod 10, c'est une très particulière de boucle d'essayer.
Avez-vous essayé de casting event.packet->dataLength à un int?
Alors que nous pouvons fixer le type d'incohérences, mais nous ne pouvons pas fixer votre logique jusqu'à ce que vous parlez-nous de l'objectif et de votre code.
Wow, je ne pense pas que, grâce à, actuellement, il n'est pas un travail, mais plus probablement parce qu'il EST inférieur à 7. Je déteste quand je fais des trucs stupides.

OriginalL'auteur JeanOTF | 2011-01-13