A nyelv kidolgozásakor a C99 szabványt vették alapul, azt valamilyen szinten módosítva, megszorítva. A nyelvi elemek terén nem történt jelentős változás.
Preprocesszor
A C99 szabvány által definiált direktívák használatára van lehetőség.
Ezen kivül bizonyos fordítási tulajdonságokat szabályzó #pragma direktívák használatára van lehetőség, mint például a lebegő pontos számítások pontosságának beállítása
További előredefinált makrók:
- __OPENCL_VERSION__ - OpenCL verziója
- CL_VERSION_1_0 - 100 értékű egész, az OpenCL 1.0 verziót szimbolizálja
- CL_VERSION_1_1 - 110 értékű egész, az OpenCL 1.1 verziót szimbolizálja
C99 jellegű lehetőségek
- változókat bárhol definiálhatunk, nem csak blokk elején.
- // típusú megjegyzések.
Megszorítások C99-hez képest
- Függvénypointerek nem hozhatók létre.
- Bitmezők jelenleg nincsenek támogatva.
- Változó hosszú tömbök nem használhatóak.
- Rekurzió nem támogatott.
- Elődefiniált azonosítók nem megengedettek.