好好好,這樣寫是吧

我突然有了更深的理解,謝謝UP:
#include <iostream>
#include <cstdint>
// CPU Architecture Detection
#if defined(__x86_64__)
#define ARCH "x86_64"
#elif defined(__i386__)
#define ARCH "x86"
#elif defined(__arm__)
#define ARCH "ARM"
#else
#define ARCH "Unknown"
#endif
#define BEGIN int main() {
#define END return 0; }
#define CODE0 if
#define CODE1 elif
#define CODE2 else
#define ADD(x, y) x + y
#define SUB(x, y) x - y
#define MUL(x, y) x * y
#define DIV(x, y) x / y
#define ALLOC(size) (int*)malloc(size * sizeof(int))
#define FILL(data, code) do { \
??for (int i = 0; i < sizeof(data)/sizeof(data[0]); i++) { \
????data[i] = code; \
??} \
} while (0)
#define EXEC(func, args) func(args)
#define ARRAY int* array;
#define FUNCTION int function(int* data, int size) {
#define LOOP for (int i = 0; i < size; i++) {
#define CHECK0 if (i == size) goto code2;
#define CHECK1 if (i[data] & 1) goto code1;
#define OPER result += i[data];
#define MODIFY i -= 0xFFFFFFFF;
#define GOTO0 goto code0;
#define GOTO1 goto code1;
#define GOTO2 goto code2;
#define RETURN return result; }
BEGIN
??ARRAY
??if (ARCH == "x86_64") {
????array = ALLOC(6);
????FILL(array, 0x90);
????EXEC((int(*)(int*, int))array, array);
??} else if (ARCH == "x86") {
????array = ALLOC(6);
????FILL(array, 0x91);
????EXEC((int(*)(int*, int))array, array);
??} else if (ARCH == "ARM") {
????array = ALLOC(6);
????FILL(array, 0xE1A00000);
????EXEC((int(*)(int*, int))array, array);
??} else {
????array = nullptr;
??}
??FUNCTION
????int result = 0;
????LOOP
??????CHECK0
??????CHECK1
??????OPER
??????MODIFY
??????GOTO0
????CODE1
??????MODIFY
??????GOTO0
????CODE2
??????RETURN
??END
??if (array) free(array);