HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: c, си, #define, директива</p>
1 <p>Теги: c, си, #define, директива</p>
2 <p>Директива #define в языке программирования Си определяет идентификатор, а также последовательность символов, которые подставятся вместо идентификатора, причем подставляться они станут каждый раз, когда этот идентификатор будет встречаться в исходном файле. Рассмотрим формальное определение этой директивы:</p>
2 <p>Директива #define в языке программирования Си определяет идентификатор, а также последовательность символов, которые подставятся вместо идентификатора, причем подставляться они станут каждый раз, когда этот идентификатор будет встречаться в исходном файле. Рассмотрим формальное определение этой директивы:</p>
3 <p>Что же, давайте воспользуемся директивой #define:</p>
3 <p>Что же, давайте воспользуемся директивой #define:</p>
4 <p>Итак, у нас определены 3 идентификатора: BEGIN, END, N. Обычно имена идентификаторов находятся в верхнем регистре, однако это не является обязательным правилом, то есть на практике мы можем определять имена и строчными символами.</p>
4 <p>Итак, у нас определены 3 идентификатора: BEGIN, END, N. Обычно имена идентификаторов находятся в верхнем регистре, однако это не является обязательным правилом, то есть на практике мы можем определять имена и строчными символами.</p>
5 <p>Как бы там не было, все вхождения последовательности символов "BEGIN" в нашем случае станут меняться на открывающую фигурную скобку, тогда как "END" - на закрывающую. Что касается символа "N", то он будет меняться на число 23.</p>
5 <p>Как бы там не было, все вхождения последовательности символов "BEGIN" в нашем случае станут меняться на открывающую фигурную скобку, тогда как "END" - на закрывающую. Что касается символа "N", то он будет меняться на число 23.</p>
6 <p>В результате наш код изменится:</p>
6 <p>В результате наш код изменится:</p>
7 <p>Как видите, все просто. Также следует отметить, что для идентификатора совсем необязательно определять символьную последовательность - по сути, вы можете ограничиться лишь одним идентификатором:</p>
7 <p>Как видите, все просто. Также следует отметить, что для идентификатора совсем необязательно определять символьную последовательность - по сути, вы можете ограничиться лишь одним идентификатором:</p>
8 <p>Весьма удобно задействовать эту директиву, например, при определении размера массива:</p>
8 <p>Весьма удобно задействовать эту директиву, например, при определении размера массива:</p>
9 <p>В нашем случае стоит нам захотеть глобально изменить размер массива, нам вполне достаточно будет поменять значение N в директиве define.</p>
9 <p>В нашем случае стоит нам захотеть глобально изменить размер массива, нам вполне достаточно будет поменять значение N в директиве define.</p>
10 <p>Еще важно понимать, что директива не заменяет последовательность символов, когда речь идет о: - двойных кавычках; - одинарных кавычках; - комментариях.</p>
10 <p>Еще важно понимать, что директива не заменяет последовательность символов, когда речь идет о: - двойных кавычках; - одинарных кавычках; - комментариях.</p>
11 <p>При этом если сам идентификатор должен состоять из одного слова, то его последовательность символов вполне себе может состоять как и из нескольких слов, так и из символов, которые разделены пробелами:</p>
11 <p>При этом если сам идентификатор должен состоять из одного слова, то его последовательность символов вполне себе может состоять как и из нескольких слов, так и из символов, которые разделены пробелами:</p>
12 <p><em>По материалам https://metanit.com/cpp/c/.</em></p>
12 <p><em>По материалам https://metanit.com/cpp/c/.</em></p>
13  
13