Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ajouté StringLen au test, et initialisé la chaîne différemment. La documentation dit une chose, le comportement réel est différent.
Et dans ce cas, la mémoire tampon affiche 0 au lieu de 260.
La documentation spécifie quand 0 est retourné et c'est approprié pour le cas spécifié
La documentation indique quand 0 est retourné et est appropriée pour le cas indiqué
La documentation ne correspond pas du tout au comportement actuel !
Et les résultats sont différents ;)Quelle est la différence entre les deux types d'initialisation ?
Et on ne sait pas très bien d'où vient le chiffre 260 de la gauche.
La documentation ne correspond pas du tout au comportement actuel !
Documentation : Une valeur de 0 signifie que la chaîne est une constante et que le contenu du tampon ne peut pas être modifié.
La chaîne est initialisée avec une constante "_" et le compilateur considère la chaîne conditionnellement (pour des raisons d'efficacité) comme une constante - pourquoi pas ? Pourquoi y a-t-il une contradiction ? D'autant plus qu'aucune autre opération n'est effectuée avec elle.
Et en général, on ne sait pas très bien d'où vient le chiffre 260 de la gauche.
Le modérateur a expliqué d'où et pourquoi dans le cas de
n'apparaît pas - raison de vérifier
Le modérateur a précisé d'où venait
Je pense que je l'ai eu avec le numéro 260, le compilateur lui-même alloue la taille initiale du tamponStringBufferLen à 260.
Si la longueur de la chaîne est inférieure à 260, le StringBufferLen imprimera 260, et non la longueur réelle de la chaîne !
Et si la longueur de la chaîne est supérieure à 260, alors la valeur réelle de la chaîne est imprimée.
Ainsi, en utilisant la fonction StringBufferLen, avec une longueur de chaîne inférieure à 260 caractères, nous n'obtiendrons pas la longueur réelle de la chaîne, mais toujours 260.
Il doit s'agir d'une erreur.
Dès que la longueur dépasse 260 caractères, nous obtenons la longueur réelle de la chaîne.
p.s. La documentation étant obsolète, elle est très trompeuse.
C'est-à-dire qu'en utilisant la fonction StringBufferLen, avec une longueur de chaîne inférieure à 260 caractères, nous n'obtiendrons pas la longueur réelle de la chaîne, mais toujours 260.
Il doit s'agir d'une erreur.
Dès que la longueur dépasse 260 caractères, nous obtenons la longueur réelle.
Longueur de la chaîne de caractères à proprement parler : StringLen et longueur du tampon : StringBufferLen sont des fonctions plutôt rares. Et en général, elles peuvent ne pas coïncider.
Cela fait deux cas au moins douteux :
Lesrésultats de l'exécution montrent que le compilateur agit contrairement à la logique :
Lesrésultats de l'exécution montrent que le compilateur agit contrairement à la logique :
La pré-allocation de la taille des tampons pour les chaînes de caractères est une question interne au compilateur.
Nous changerons encore de nombreuses fois la manipulation des chaînes de caractères.