Erros, bugs, perguntas - página 3138

 
Valeriy Yastremskiy #:

A dimensionalidade de uma matriz estática é uma constante, não uma int.

Desculpe, respondi sem verificar.

Junto-me à pergunta, int estática constante, ushort, o efeito é o mesmo, embora em ajuda:

Variáveis

O índice de matriz só pode ser um número inteiro.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Insectos, insectos, perguntas

x572intraday, 2022.01.08 20:44

   int dim=5;
   int Arr1[5];// OK
   int Arr2[dim];// '[' - invalid index value

Ou estou totalmente fodido, ou se não for um insecto, espeta uma amostra na Ajuda.


 
Valeriy Yastremskiy #:

Desculpe, respondeu sem verificar.

Junto-me à pergunta, o efeito estático constante, o efeito de ushort é o mesmo, embora na ajuda:

Variáveis

Apenas um número inteiro pode ser um índice de matriz.


A resposta estava quase correcta. Uma variável não é uma constante.

 
Valeriy Yastremskiy #:

Desculpe, respondeu sem verificar.

Junto-me à pergunta, o efeito estático constante, o efeito de ushort é o mesmo, embora na ajuda:

Variáveis

Apenas um número inteiro pode ser um índice de matriz.


Em vez de

int dim=5;

colocado no topo do programa.

#define  dim 5
Mas pessoalmente encontro isto... não tanto como uma muleta, mas uma espécie de alternativa não muito conveniente à desejável mas impraticável e impraticável versão original.
 
Alexey Viktorov #:

A resposta estava quase correcta. Uma variável não é uma constante.

Isto é, declarar uma variável inteira constante não é uma constante?

 
x572intraday #:

Em vez de

colocar no topo do programa

Mas pessoalmente, encontro isto... não como uma muleta, mas como uma alternativa a uma variante original desejável, mas impraticável e irrealizável.

A substituição do poço é diferente, claro, em vez de fraca, substituindo um inteiro que o compilador engolirá.

 
Valeriy Yastremskiy #:

Isto é, declarar uma variável inteira constante não é uma constante?

Uma variável constante não é um valor constante. A palavra-chave é variável.
 
Alexey Viktorov #:
Uma variável constante não é um valor constante. A palavra-chave é variável.
Obrigado, isso faz mais sentido)
 

Compreendo porquê, mas há muito pouca informação sobre o IsStopped() na Ajuda. Gostaria de ter mais detalhes:

  1. Faz algum sentido empurrá-lo em todos os loops seguidos? Ou existem situações em que não é necessário fazer tudo de novo? Ou, para maior segurança, devemos adicioná-las em todo o lado? Suspeito que a função é mais útil emloops de alta carga, por exemplo, quando se tenta uma taxa_total enorme em pequenos TFs, quando se tenta um grande número de objectos gráficos, etc.?
  2. Onde mais, para além de loops, posso/devo empurrá-lo? Não vi quaisquer exemplos, excepto de ciclos, em qualquer outro lugar.
 
x572intraday #:

Compreendo porquê, mas há muito pouca informação sobre o IsStopped() na Ajuda. Gostaria de ter mais detalhes:

  1. Faz algum sentido empurrá-lo em todos os loops seguidos? Ou existem situações em que não é necessário fazer tudo de novo? Ou, para maior segurança, devemos adicioná-las em todo o lado? Suspeito que a função é mais útil emloops de alta carga, por exemplo, quando se tenta uma taxa_total enorme em pequenos TFs, quando se tenta um grande número de objectos gráficos, etc.?
  2. Onde mais, para além de loops, posso/devo enfiá-lo? Não vi quaisquer exemplos, excepto loops.

Isto é mais frequentemente utilizado em loops onde se pode obter acidentalmente um loop infinito. Ou intencionalmente ligada a um guião ou serviço.

 

Porque não podemos fazer isto?

void OnStart()
  {
   TFunc f = someFunction;
  }

class Test
  {
  } ;
typedef void (*TFunc)(Test*);
void someFunction(Test &a)  { }



não pode lançar a função 'someFunction' para escrever 'TFunc'.