Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Adicionou StringLen ao teste, e inicializou a corda de forma diferente. A documentação diz uma coisa, o comportamento real é diferente.
E o tampão neste caso mostra 0 em vez de 260.
A documentação especifica quando 0 é devolvido e é apropriado para o caso especificado
A documentação indica quando 0 é devolvido e é apropriado para o caso indicado
A documentação não corresponde em nada ao comportamento atual!
E os resultados são diferentes ))Qual é a diferença entre os dois tipos de inicialização?
E não está claro de onde vem o número 260 da esquerda.
A documentação não corresponde em nada ao comportamento atual!
Documentação: Um valor de 0 significa que a string é uma constante e que o conteúdo do buffer não pode ser alterado.
A cadeia é inicializada com um "_" constante e o compilador considera a cadeia condicionalmente (para fins de eficiência) uma constante - por que não? Por que existe uma contradição? Tanto mais que não são realizadas mais operações com ele.
E em geral não está claro de onde vem o número 260 da esquerda.
O moderador explicou de onde, e por que no caso de
não aparece - razão para verificar
O moderador esclareceu de onde
Acho que consegui com o número 260, o próprio compilador aloca o tamanho inicial do bufferStringBufferLen a 260.
Se o comprimento da corda for inferior a 260, a StringBufferLen imprimirá 260, não o comprimento real da corda!
E se o comprimento da corda for maior que 260, então o valor real da corda é impresso.
Portanto, usando a função StringBufferLen, com um comprimento de corda inferior a 260 caracteres, não teremos o comprimento real da corda, e sempre teremos 260.
Isto deve ser um erro.
Assim que o comprimento exceder 260 caracteres, teremos o comprimento real da corda.
p.s. como a documentação está desatualizada, é muito enganosa.
Ou seja, usando a função StringBufferLen, com um comprimento de corda inferior a 260 caracteres, não teremos o comprimento real da corda, e sempre teremos 260.
Isto deve ser um erro.
Assim que o comprimento exceder 260 caracteres, teremos o comprimento real.
Estritamente falando, o comprimento das cordas: StringLen e comprimento do buffer: StringBufferLen são funções bastante raras. E, em geral, podem não coincidir.
Isso faz com que haja pelo menos dois casos questionáveis:
Os resultados da execução mostram que o compilador age de forma contrária à lógica:
Os resultados da execução mostram que o compilador age de forma contrária à lógica:
O tamanho de pré-alocação de amortecedores para cordas é uma questão interna do compilador.
Mudaremos o manuseio das cordas muitas mais vezes.