30/09/2018, 19:48

Cần giải thích một đoạn code sử dụng define

Mình có đoạn code như sau:

#include <iostream>
#include <string>
#define f(x) x-x
#define k(x) f(x)*f(x)
using namespace std;

void main()
{
	cout << k(5);
	system("pause");
}

Tại sao kết quả trả về không phải là 0 như mình nghĩ mà là -25?

Lê Hồng Hiếu viết 22:03 ngày 30/09/2018

mình vừa mới thử rồi bạn, hình như vẫn là -25

Lê Hồng Hiếu viết 22:03 ngày 30/09/2018

vậy bạn giải thích giúp mình cái code gốc dc ko? tại sao lại là -25?? Cảm ơn

Lập Trình Sư viết 22:00 ngày 30/09/2018

vậy bạn giải thích giúp mình cái code gốc dc ko? tại sao lại là -25?? Cảm ơn

Bản chất chỉ là macro để thay thế

k(5) = f(5)*f(5) = 5-5*5-5 = 5-25-5=-25

Chỉ vậy thôi :))

Nếu có ngoặc vào thì:

k(5) = (f(5))*(f(5)) = (5-5)*(5-5) = 0 * 0 = 0
Văn Dương viết 21:55 ngày 30/09/2018

5-5*5-5 theo bạn là bao nhiu

Bài liên quan
0