Рубрики

Викторина С — 110 | Вопрос 1

Предположим, кто-то пишет макрос приращения (т.е. который увеличивает значение на единицу) следующими способами:

#define INC1(a) ((a)+1)

  
#define INC2 (a) ((a)+1)

  
#define INC3( a ) (( a ) + 1)

  
#define INC4 ( a ) (( a ) + 1)

Выберите правильное утверждение для вышеупомянутых макросов.
(A) Только INC1 является правильным.
(B) Все (т.е. INC1, INC2, INC3 и INC4) являются правильными.
(C) Только INC1 и INC3 являются правильными.
(D) Только INC1 и INC2 являются правильными.

Ответ: (с)
Объяснение: В C для макросов с аргументами не должно быть пробелов между именем макроса и открывающей скобкой . Вот почему только INC1 и INC3 являются правильными. По сути, «#define INC2 (a) ((a) +1)» приводит к расширению «INC2» до «(a) ((a) +1)», что не является желаемым расширением.
Тест на этот вопрос

Рекомендуемые посты:

Викторина С — 110 | Вопрос 1

0.00 (0%) 0 votes