W językach C/C++ nie ma typowych stałych, w zamian używa się dyrektywy preprocesora #define, natomiast w poniższym przykładzie foo2 to tzw. literał zmienny, czyli zmienna (wraz ze wszystkimi jej własnościami), która jest traktowana jak stała.: #define PI 3.1415
float func(const float foo) { const float foo2 = 2.7182*sin(PI); ... } Także dyrektywa #define w językach C i C++ nie jest stałą, lecz poleceniem dla preprocesora, aby ten odpowiednio zmodyfikował tekst kodu źródłowego przed przekazaniem go kompilatorowi − czyli zastąpił odpowiednią nazwę określonym tekstem, np.: #define begin { zastępuje każde wystąpienie (prócz wystąpień w cudzysłowach) słowa begin znakiem {.
Stała jest często mylona z literałem, który jest zapisem danej wartości w danym punkcie programu. Stała jest natomiast identyfikatorem przypisanym do danego literału. Każde wystąpienie tego identyfikatora w kodzie źródłowym programu jest równoznaczne z wystąpieniem odpowiadającego mu literałuAndrzej Marciniak, Turbo Pascal 7.0, Wyd.