Guia de rastreamento dinâmico Solaris

Constantes

Constantes de inteiro podem ser escritas em decimal (12345), octal (012345) ou hexadecimal (0x12345). Constantes octais (base 8) devem ser prefixadas com um zero à esquerda. Constantes hexadecimais (base 16) devem ser prefixadas com 0x ou 0X. Os menores tamanhos são atribuídos a constantes de inteiro entre int, long e long long que podem representar seu valor. Se o valor for negativo, a versão assinada do tipo será usada. Se o valor for positivo e muito grande para caber na representação de tipo assinado, a representação de tipo não assinado será usada. Você pode aplicar um dos seguintes sufixos a uma constante inteira para especificar explicitamente seu tipo D:

u ou U

Versão unsigned do tipo selecionado pelo compilador

l ou L

long

ul ou UL

unsigned long

ll ou LL

long long

ull ou ULL

unsigned long long

Constantes de ponto flutuante são sempre escritas em decimal e devem conter um ponto decimal (12.345) ou um expoente ( 123e45) ou ambos (123.34e-5). O tipo double é atribuído por padrão às constantes de ponto flutuante. Você pode aplicar um dos seguintes sufixos a uma constante inteira para especificar explicitamente seu tipo D:

f ou F

float

l ou L

long double

Constantes de caractere são escritas como um único caractere ou seqüência de escape entre um par de aspas simples ('a'). O tipo int é atribuído às constantes de caractere, que são equivalentes a uma constante inteira cujo valor é determinado pelo valor desse caractere no conjunto de caracteres ASCII. Você pode consultar ascii(5) para obter uma lista de caracteres e seus valores. Você também pode usar qualquer uma das seqüências de escape especiais mostradas na tabela seguinte em suas constantes de caractere. D aceita as mesmas seqüências de escape encontradas em ANSI-C.

Tabela 2–5 Seqüências de escape de caractere de D

\a

alerta 

\\

retroreferência 

\b

backspace 

\?

ponto de interrogação 

\f

alimentação de formulário 

\'

aspas simples 

\n

nova linha 

\”

aspas duplas 

\r

retorno de carro 

\0oo

valor octal 0oo

\t

guia horizontal 

\xhh

valor hexadecimal 0xhh

\v

guia vertical 

\0

caractere nulo 

Você pode incluir mais de um especificador de caractere entre aspas simples para criar inteiros cujos bytes individuais são inicializados de acordo com os especificadores de caractere correspondentes. Os bytes são lidos da esquerda para a direita da constante de caractere e atribuídos ao inteiro resultante na ordem correspondente ao endian-ness nativo do seu sistema operacional. Até oito especificadores de caractere podem ser incluídos em uma única constante de caractere.

As constantes de seqüências de qualquer tamanho podem ser compostas quando colocadas entre um par de aspas duplas ("olá"). Uma constante de seqüência talvez não contenha um caractere de nova linha literal. Para criar seqüências que contêm novas linhas, use a seqüência de escape \n em vez de uma nova linha literal. As constantes de seqüência podem conter qualquer de uma das seqüências de escape de caractere especial mostradas acima para constantes de caractere. Semelhante ao ANSI-C, as seqüências são representadas como matrizes de caracteres terminadas por um caractere nulo (\0), que é implicitamente adicionado a cada constante de seqüência que você declarar. O tipo D especial string é atribuído às constantes de seqüência. O compilador de D fornece um conjunto de recursos especiais para comparar e rastrear as matrizes de caracteres que são declaradas como seqüências, conforme descrito no Capítulo 6Seqüências.