JavaScript is required

What is output? #include #include #define ISEQUAL(X, Y) X == Y void main() { #if ISEQUAL(X, 0) printf("C/C++"); #else printf("Java"); #endif getch(); }

A.

C/C++

B.

Java

C.

Complier error

Trả lời:

Đáp án đúng: C


Đoạn mã sử dụng `#define` để định nghĩa một macro `ISEQUAL(X, Y)` so sánh `X` và `Y`. Tuy nhiên, khi sử dụng macro này trong `#if ISEQUAL(X, 0)`, `X` không được định nghĩa trước đó. Do đó, trình biên dịch sẽ hiểu `X` là một định danh chưa được khai báo. Việc sử dụng một định danh chưa được khai báo trong một biểu thức `#if` sẽ dẫn đến lỗi biên dịch. Vì vậy, chương trình sẽ báo lỗi biên dịch.

Câu hỏi liên quan