Ключевые слова (keywords)
Идентификаторы (identifiers)
Литералы (literals)
Операции (operators)
Знаки пунктуации (разделители, punctuators)
Лексемы (как и слова в естественном языке) разделяются непечатаемыми (пробельными) символами (пробел, символы табуляции, перевода строки, возврат каретки, перевода страницы) и знаками пунктуации:
{ } [ ] # ## ( ) <:
:> <% %> %: %:%: ; : ... new
delete ? :: . .* -> ->* ~ !
+ - * / % ^ & |= +=
-= *= /= %= ^= &= |= == !=
< > <= >= <=> && || << >>
<<= >>= ++ -- , and or xor not
bitand bitor compl and_eq or_eq xor_eq not_eq
Идентификаторы
Идентификатор - это имя программного объекта: переменной, константы, массива, функции, класса и т. п. В идентификаторах могут использоваться латинские буквы, цифры и знак нижнего подчеркивания ( _ ). В C++ различаются строчные и прописные буквы (т. е. имена регистро-зависимы), так: Name, name и NAME - это разные идентификаторы. Правила использования идентификаторов:
можно использовать латинские символы: A..Z, a..z;
можно использовать арабские цифры: 0..9 и символ нижнего подчеркивания, но не в начале;
пробелы в имени не допускаются;
не рекомендуется начинать с нижнего подчеркивания или с двух нижних подчеркиваний и заглавной буквы, например: _S (такие идентификаторы имеют специальное назначение);
двойное подчеркивание используется только для служебных целей to__boo
не допускается использования ключевых слов;
необходимо воздерживаться от использования ключевых слов, как части имени, например: for_and_if (за исключением наименования типов)
При составлении имен желательно придерживаться какого-либо стиля, например, стиля CamelCase: имена пишутся слитно, каждое слово, описывающее назначение идентификатора, пишется с заглавной буквы. Этот стиль используется в двух вариантах: UpperCamelCase и lowerCamelCase. Первый используется для именования классов, второй для прочего: переменных, методов и т.п.
Ключевые слова - это лексемы специального назначения. Они зарезервированы, использовать их в качестве идентификаторов запрещено.
alignas
alignof
and
and_eq
asm
atomic_cancel
atomic_commit
atomic_noexcept
auto
bitand
bitor
bool
break
case
catch
char
char8_t
char16_t
char32_t
class
compl
concept
const
consteval
constexpr
|
constinit
const_cast
continue
co_await
co_return
co_yield
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
if
inline
|
int
long
mutable
namespace
new
noexcept
not
not_eq
nullptr
operator
or
or_eq
private
protected
public
reflexpr
register
reinterpret_cast
requires
return
short
signed
sizeof
static
|
static_assert
static_cast
struct
switch
synchronized
template
this
thread_local
throw
true
try
typedef
typeid
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
xor
xor_eq
|
Достарыңызбен бөлісу: |