#define MAX 20; void main() { printf("MAX"); }
Вывод этой программы:C директивы препроцессора вопросы и ответы
"20"
, но я ожидал, что это будет:
20;
почему точка с запятой не появляется на выходе?
#define MAX 20; void main() { printf("MAX"); }
Вывод этой программы:C директивы препроцессора вопросы и ответы
"20"
, но я ожидал, что это будет:
20;
почему точка с запятой не появляется на выходе?
printf("MAX");
На самом деле то, что печатается в MAX
, так как макросы не раскладываются в кавычки.
oops sorry !! мой плохой .. –
@HarshitSyal Не беспокойтесь. Как правило, это хорошая идея для запуска кода, о котором вы спрашиваете. – cnicutar
Это НЕПРАВИЛЬНО:
#define MAX 20; void main() { printf("MAX"); }
Я подозреваю, что, возможно, вы означало это:
#define MAX 20
void main()
{
printf("%d\n", MAX);
}
Макросы не так уж сложны; вы можете найти множество ссылок. Например:
Это:
#define MAX 20; void main() { printf("MAX"); }
это не программа.
Это, однако, действительный C, который определяет объектно-подобный макрос с именем 'MAX', который заменяется на токенную последовательность' 20; void main() {printf ("MAX"); } '. –
@JamesMcNellis - Но следующая строка в исходном коде должна быть 'MAX'. Во всяком случае - бит глупый вопрос. –
Результат этой программы, конечно, не равен "20" (если неопределенное поведение, вызванное 'main', имеющим тип возврата' void', заставляет его печатать '' 20 "', что маловероятно). Отправьте фактический код. –
Все в порядке! – Malkocoglu
Попробуйте скопировать код правильно - это не собирается компилировать – smocking