Néhány fontosabb beépített skalár típus:
Típus | Leírás |
---|---|
bool | Feltételes típus. Értéke igaz vagy hamis. Az igaz érték megfelel az egész 1-nek, a hamis az egész 0-nak |
char | 8 bites, előjeles egész |
unsigned char, uchar | 8 bites, előjeletlen egész |
short | 16 bites, előjeles egész |
unsigned short, ushort | 16 bites, előjeletlen egész |
int | 32 bites, előjeles egész |
unsigned int, uint | 32 bites, előjeletlen egész |
long | 64 bites, előjeles egész |
unsigned long, ulong | 64 bites, előjeletlen egész |
float | Szimpla pontosságú lebegőpontos szám. A műveleteknek meg kell felelenie a IEEE-754 szabványnak. |
half | Fél (16 bit) pontosságú lebegőpontos szám. A műveleteknek meg kell felelenie a IEEE-754-2008 szabványnak. |
size_t | Előjelentlen egész, a sizeof operátor eredményének típusa |
Lehetőségünk van vektorokat képezni a char, unsigned char, short, unsigned short, integer, unsigned integer, long, unsigned long, float típusokból.
Szintaxis:
charn, ucharn, shortn, ushortn, intn, uintn, longn, ulongn, floatn,
ahol n 2, 4, 8 és 16 közül kerülhet ki. Az a szabvány 1.1-es verziója bevezeti a 3 használatának lehetőségét is.
Vektor literálok segítségével vektorokat hozhatunk létre skalárok, más vektorok vagy ezek keverékének listájával. A literál egy zárójelezett vektortípusnévből és egy zárójelezett értéklistából áll. Felhasználhatók inicializálásra, vagy konstansként egy kifejezésben. Vagy egy literál értéknek kell lennie, vagy pontosan annyinak, amekkora a létrehozandó vektor mérete. Egy érték esetén az minden vektorkomponensnek értékül adódik.
Példák:
Típus | Leírás |
---|---|
image2d_t | 2D-s képobjektum. Grafikus hardveren annak 2D-s textúráit reprezentálja. |
image3d_t | 3D-s képobjektum. Grafikus hardveren annak 3D-s textúráit reprezentálja. |
sampler_t | Mintavételező képobjektumok kezelésére. Megadhatunk különböző szűrési módszereket (legközelebbi, lineáris). Grafikus hardver esetén annak mintavételező egységeit reprezentálja. |
Változó deklarációknál a __global, __local, __private, __constant minősítőkkel meghatározhatjuk a változó elhelyezkedési helyét a memóriában. Alapértelmezett minősítő a __private. A program szintű láthatóságú változók csak a konstans memóriában helyezkedhetnek el. Különböző típusú memóriára hivatkozó pointerek nem adhatók értékül egymásnak. A minősítőkkel ekvivalensek a global, local, private, constant kulcsszavak is.
A kernelek nem írhatnak és olvashatnak egyszerre egy képobjektumot. A __read_only (read_only), __write_only (write_only) minősítőkkel állíthatjuk be a hozzáférés módját. Az alapértelmezett a __read_only.
Lehetőség van a tömb, rekord, unió típus létrehozására. A szintaxis megfelel a C99-nek.