Le costanti sono voci di dati letterali scritte in un programma ULP. In base ai diversi tipi di dati, esistono anche diversi tipi di costanti:
Una costante del carattere è costituita da un singolo carattere o da una sequenza di escape racchiusa tra virgolette singole, come
'a'
'='
'\n'
Il tipo di costante di un carattere è char.
A seconda del primo carattere (ed eventualmente del secondo), si presuppone che una costante intera sia espressa in valori di base diversi:
| primo | secondo | costante interpretata come |
| 0 | 1-7 | Ottale (base 8) |
| 0 | x,X | Esadecimale (base 16) |
| 1-9 | Decimale (base 10) |
Il tipo di una costante intera è int.
Esempi:
| 16 | Decimale |
| 020 | Ottale |
| 0x10 | Esadecimale |
Una costante reale segue la serie generale
[-]int.frac[e|E[±]exp]
Che significa
È possibile omettere il numero intero decimale o la frazione decimale (ma non entrambi). È possibile omettere il punto decimale o la lettera e o E e l'esponente intero con segno (ma non entrambi).
Il tipo di costante reale è real.
Esempi:
| Costante | Valore |
|---|---|
| 23.45e6 | 23,45 x 10^6 |
| 0 | 0.0 |
| 0. | 0.0 |
| 1. | 1,0 |
| -1,23 | -1,23 |
| 2e-5 | 2,0 x 10^-5 |
| 3E+10 | 3,0 x 10^10 |
| .09E34 | 0,09 x 10^34 |
Una costante della stringa è costituita da una sequenza di caratteri o sequenze di escape racchiuse tra virgolette doppie, ad esempio
"Hello world\n"
Il tipo di costante della stringa è string.
Le costanti della stringa possono avere qualsiasi lunghezza (se è disponibile una quantità di memoria libera sufficiente). Le costanti della stringa possono essere concatenate semplicemente scrivendole l'una accanto all'altra per formare stringhe più grandi:
string s = "Hello" " world\n";
È inoltre possibile estendere una costante della stringa su più righe, evitando il carattere di nuova riga con una barra rovesciata (\):
string s = "Hello \
world\n";
Una sequenza di escape è costituita da una barra rovesciata (\), seguita da uno o più caratteri speciali:
| Sequenza | Valore |
|---|---|
\a |
Campanello acustico |
\b |
Backspace |
\f |
Maschera avanzamento |
\n |
Nuova linea |
\r |
Ritorno a capo |
\t |
Scheda orizzontale |
\v |
Scheda verticale |
\\ |
barra rovesciata |
\' |
Virgolette singole |
\" |
Virgolette doppie |
\O |
O = fino a 3 cifre ottali |
\xH |
H = fino a 2 cifre esadecimali |
Qualsiasi carattere che segue la barra rovesciata iniziale non indicata in questo elenco verrà considerato come tale carattere (senza la barra rovesciata).
Le sequenze di escape possono essere utilizzate in costanti di caratteri e stringhe.
Esempi:
'\n'
"A tab\tinside a text\n"
"Ring the bell\a\n"