aXXo 0 Report post Posted April 14, 2008 Kenapa variable tu di define kan sedemikian. Aku tak pernah jumpa pun dalam buku yang aku baca!#define VXw(value) WriteReg((Opcode >> 8) & 0xf, value)Cth penggunaan :typedef unsigned char u8;u8 memory[0xFFFF];u8 V[16];short value;#define VXw(value) WriteReg((Opcode >> 8) & 0xf, value)void CpuSetVX(){ //6XKK VX = KK //CPU_LOG("VX = KK - Opcode = %x, PC = %x\n", Opcode, PC); VXw(Opcode & 0xff); <-- Kat sini}void WriteReg(u8 location, u8 value){ V[location] = value;} Quote Share this post Link to post Share on other sites
aXXo 0 Report post Posted April 14, 2008 huhu...xde ke bro2 yg nak tolong aku ne??? i'm waiting!... Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted April 15, 2008 #define adalah preprocessor directive, direka untuk memudahkan/meringkaskan tugas yang berulang. Ia akan diproses terlebih dahulu oleh C preprocessor (textually). Biasanya dipanggil sebagai macros.#define VXw(value) WriteReg((Opcode >> 8) & 0xf, value) bermakna VXw adalah macro yang menerima satu argument bernama value. Basically awak bolehlah analogikan macro dengan fungsi. Jadi selepas macro definition ni, preprocessor C akan gantikan (dalam contoh di atas) VXw(Opcode & 0xff); dengan WriteReg((Opcode >> 8) & 0xf, Opcode & 0xff) Quote Share this post Link to post Share on other sites