Константы и препроцессор С

Иногда в программе приходится использовать константы. Можно объявить константу общеизвестным методом, например так:

float pi;

pi=3.14159;

однако в этом случае pi остается переменной и есть опасность, что программа может случайно изменить ее значение. Гораздо надежнее и удобнее объявить константу используя директиву препроцессора:

#define PI 3.14159

Это называется подстановкой во время компиляции. В этом случае вы можете быть уверены, что всюду в программе, где указана константа PI будет подставлено определенное значение. Особо отметим, что определение константы в этом случае делается именно так, как указано в примере, без знака равенства (=)! Это важно. Если во время определения константы будет сделана ошибка и указан знак равенства, например, так:

#define PI = 3.14159

то везде в программе в качестве константы будет подставлено значение ʺ= 3.14159ʺ.

Имена констант принято набирать заглавными буквами.

Константы и препроцессор С - student2.ru

Заметим так же, что в программе используется спецификатор %1.2f, который требует округления до двух знаков после десятичной запятой.

Оператор #define может использоваться так же для объявления символьных и строчных констант:

Константы и препроцессор С - student2.ru

Стандарт языка C90 позволяет использовать еще один способ создания символьных констант при помощи ключевого слова const для преобразования объявленной переменной в константу:

const int MONTH = 12; /*MONTH – символическая константа со значением 12*/

Препороцессор в С – полезное и важное инструментальное средство, необходимо овладеть им и использовать его чаще.

Функция printf()

Инструкции, которые вы даете printf() , обращаясь к ней с требованием печати переменной, зависят от типа этой переменной. Например, ране е мы использовали форму записи %d при печати целого числа и %с - при печати символа. Эти указания называются спецификациями преобразования, поскольку они определяют, каким образом преобразуются данные в форму, пригодную для вы вода. Далее приведем список спецификаций преобразования, которые стандарт ANSI С предусматривает для функции printf(), и затем покажем, как следует использовать наиболее употребляемые из них.

Константы и препроцессор С - student2.ru

В таблице. 4.3 приведены спецификаторы преобразования и типы вывода, который они обеспечивают.

Наши рекомендации