Рубрики

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

Следующая программа не будет компилироваться, потому что между именем макроса и открывающей скобкой есть пробел.

#include "stdio.h"

  
#define MYINC   (  a  )  (  ( a )  +  1 )

  

int main()

{

  

 printf("GeeksQuiz!");

  

 return 0;

}

(A) ИСТИНА
(B) ЛОЖЬ

Ответ: (Б)
Объяснение: Обратите внимание, что #define — это директива препроцессора, т.е. она обрабатывается до фактической компиляции. В приведенном выше фрагменте программы MYINC нигде не используется в программе. Таким образом, несмотря на то, что MYINC не выполняет намеченное поведение, то есть он не будет увеличивать a, но MYINC является допустимым макросом. Если бы мы использовали MYINC где-нибудь в программе, его заменили бы на «(a) ((a) + 1)». Так что выше программа будет скомпилирована и запущена без каких-либо проблем.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes