Guia de rastreamento dinâmico Solaris

Variáveis escalares

As variáveis escalares são usadas para representar objetos de dados de tamanho fixo individuais, tais como inteiros e ponteiros. As variáveis escalares também podem ser usadas para objetos de tamanho fixo que são compostos de um ou mais tipos primitivos ou compostos. D fornece o recurso para criar matrizes de objeto, assim como estruturas compostas. DTrace também representa seqüências como escalares de tamanho fixo, permitindo que elas cresçam para um tamanho máximo predefinido. O controle sobre o tamanho da seqüência em seu programa em D é discutido com mais detalhes no Capítulo 6Seqüências.

As variáveis escalares são criadas automaticamente na primeira vez em que você atribui um valor a um identificador não definido anteriormente em seu programa em D. Por exemplo, para criar uma variável escalar chamada x de tipo int , você pode simplesmente atribuir a ela um valor do tipo int em qualquer cláusula de teste:

BEGIN
{
	x = 123;
}

Variáveis escalares criadas dessa forma são variáveis globais : seu nome e local de armazenamento de dados são definidos uma vez e ficam visíveis em cada cláusula de seu programa em D. Toda vez que você referenciar o identificador x, estará fazendo referência a um único local de armazenamento associado a essa variável.

Ao contrário de ANSI-C, D não requerer declarações explícitas de variáveis. Se você quiser declarar uma variável global para atribuir seu nome e tipo explicitamente antes de usá-la, coloque uma declaração fora das cláusulas de teste em seu programa, como mostrado no exemplo seguinte. Declarações de variáveis explícitas não são necessárias na maioria dos programas em D, mas às vezes são úteis quando você quiser controlar cuidadosamente os tipos de variáveis ou quando quiser começar o seu programa com um conjunto de declarações e comentários documentando as variáveis do seu programa e seus respectivos significados.

int x; /* declare an integer x for later use */

BEGIN
{
	x = 123;
	...
}

Ao contrário das declarações ANSI-C, as declarações de variáveis D podem não atribuir valores iniciais. Você deve usar uma cláusula de teste BEGIN para atribuir quaisquer valores iniciais. O armazenamento de todas as variáveis globais é preenchido com zeros pelo DTrace antes de você referenciar a variável.

A definição de linguagem D não limita o tamanho e o número de variáveis D, mas os limites são definidos pela implementação de DTrace e pela memória disponível no sistema. O compilador D reforçará quaisquer limitações que possam ser aplicadas no momento em que você compila o seu programa. Você pode aprender mais sobre como ajustar as opções relacionadas aos limites do programa no Capítulo 16Opções e ajustáveis.